3 for

时间:2022-12-01 19:00:04

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()

{

int n = 0;

int i = 0;

int ret = 1;

printf("请输入n的值,来计算n的阶乘\n");

scanf("%d", &n);//放不下了就溢出了,结果为0

if (n == 0)

{

 printf("n=0时,n的阶层为0\n");

}

else

{

 for ( i = 1;i<=n;i++)

 {

  ret = ret*i;

 }

 printf("n的阶乘=%d", ret);

 

}

}

//for循环计算阶乘




#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

int main()

{

int n = 0;

int i = 0;

int ret = 1;

int sum = 0;

for (n = 1; n <= 10;n++)

{

 ret = ret*n;

 sum = sum + ret;

  }

printf("%d", sum);

}

// 打印     1!+2!+3!+....+10!=?     4037913





#define _CRT_SECURE_NO_WARNINGS  

#include<stdio.h>

int main()

{

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

int k = 11;

int i = 0;

int sz = sizeof(arr) / sizeof(arr[0]);

for (i = 0; i < sz; i++)

{

 if (k == arr[i])

 {

  printf("找到了,下标是%d\n", i);

  break;

 }

}

if (i == sz)

 printf("找不到\n");

return 0;

}

// 寻找数组下标(低效,没有使用二分法)




#define _CRT_SECURE_NO_WARNINGS  

#include<stdio.h>

int main()

{

int k = 11;

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

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

int left = 0;//左下标

int right = 9;//右下标

while (left <= right)

{


 int mid = (left + right) / 2;

 if (arr[mid] > k)

 {

  right = mid - 1;

 }

 else if (arr[mid] < k)

 {

  left = mid + 1;

 }

 else

 {

  printf("找到了,下标是%d\n", mid);//当目标数字==k时

  break;                              //这个过程中mid就是对应数字的下标。

 }

 if (left>right)

 {

  printf("找不到了\n");

 }

}

return 0;

}

//寻找下标。如果找得到,显示下标;找不到,结果就是找不到了