for循环,do while,练习

//循环语句for

//for(表达式1;表达式2;表达式3)//初始化 判断 调整

//循环语句;

//int main()

//{

// int i = 0;

// for (i = 1; i

// {

// printf("%d ", i);

// //i++ 不建议在for循环内修改变量,防止for循环失去控制

// }

// return 0;

//}

//建议for语句的循环控制变量的取值采用“前闭后开区间”写法

//int main()

//{

// int arr[10] = { 0 };

// int i = 0;

// for (i = 0; i < 10; i++)// i

// {

// printf("%d ", arr[i]);

// }

//

// return 0;

//}

//

//for循环的变种

//int main()

//{

// int j = 0;

// int i = 0;

// for (; i < 3; i++)//判断部分的省略 - 判断部分就恒为真 不建议随便省略

// {

// for (; j < 3; j++)//循环后还j=3,没有回0

// {

// printf("hehe\n");

// }

//

// }

// return 0;

//}

//

//int main()

//{

// int x, y;

// for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)

// {

// printf("hahha\n");

// }

// return 0;

//}

//for(i=0;i=0;i++) i=0判断部分应写为i==0,无循环

//do while循环

//do

//循环语句

//while(表达式);

//先执行,再判断

//int main()

//{

// int i = 1;

// do

// {

// if (i == 5)

// continue;//break;

// printf("%d ", i);

// i++;

// } while (i

//

//

// return 0;

//}

//break是跳出循环,不是跳过整个程序,和循环有关,一个break只能跳出一层循环

//练习1:计算n的阶乘 1*2*3*4...*n

//

//int main()

//{

// int i = 0;

// int n = 0;

// int sum = 1;

// scanf("%d", &n);

// for (i = 1; i

// {

// sum = sum * i;//sum*=i

//

// }

// printf("%d", sum);

//

// return 0;

//}

//int main()

//{

// int i = 0;

// int n = 0;

// int ret = 1;

// int sum = 0;

//

// for (n = 1; n

// {

// for (i = 1; i

// {

// ret *= i;

// }

// sum += ret;

// ret = 1;//计算ret之前,重归初始值

// }

// for (n = 1; n

// {

// ret *= n;

// sum += ret;

// }

// printf("%d ", sum);

// return 0;

//}

//在一个有序数组中查找具体的某个数字n

//折半查找/二分查找

int main()

{

int arr[] = { 1,2,3,4,5,6,7,8,9,10 };

int k = 7;//要查找的数字k=7

int sz = sizeof(arr) / sizeof(arr[0]);//数组元素个数

int left = 0;

int right = sz - 1;

while (left

{

int mid = (left + right) / 2;//mid=(0+9)/2=4

if (arr[mid] < k) //(5+9)/2=7

{ //(5+6)/2=5

left = mid + 1; //(6=6)/2=6 左边不会大于右边,否则找不到

}

else if (arr[mid] > k)

{

right = mid - 1;

}

else

{

printf("找到下标是: %d\n", mid);

break;

}

}

if (left > right)

{

printf("找不到\n");

return 0;

你可能感兴趣的:(c语言)