1:计算n的阶乘:
我们要计算n的阶乘,我们就要知道阶乘的含义,即1*2*3*4.....*n;
那我们既然知道了阶乘的含义,我们就可以定义第一个阶乘数的初始值为1;即int n =1;
那么我们要算出n的阶乘,我们就可以给n一个初始值,我设定的为1.
那么当我们知道第一个阶乘值i,和最后一个值n的时候,我们就可以按逻辑写出,i = 1;那么如果第一个数 i 小于或等于我们的最后一个数n的时候,我们就进入循环,进入循环以后呢我们就可以开始计算,*1,*2,*3,我们利用一个函数chr来接收乘完以后所得的值,然后我们再定义一个he,把我们的结果加到一起,就可以知道我们的阶乘所得的和了。然后我们利用打印函数将得数打印到我们的屏幕上,就可以得到结果了。
#include<stdio.h>
int main()
{
int i = 0; //定义第一个数
int n = 1; //定义最后一个数
int chr = 1; //定义一个乘法算完以后的结果
int he = 0; //定义将结果加到一起的承受函数
scanf_s("%d", &n); //通过这个函数我们可以自定义n的数值。
for (i = 1; i <= n; i++) //设置初始值i = 1;如果i<我们定义的n,进入循环,循环后i++。
{
chr = chr * i; //计算阶乘,利用chr来接收阶乘的得数。
he += chr; //利用我们的he将chr接收的阶乘的数值加到一起。
}
printf("%d\n", he); //打印到屏幕输出得数。
return 0;
}
2:计算1!+2!+3!+........10!
看到第二题我们就可以得出,要我们计算1~10阶乘的和,那么通过我们上面的代码进行更改,就可以简单的得到我们需要的结果。
下面是我们的代码:
#include<stdio.h>
int main()
{
int i = 0;
int chr = 1;
int he = 0;
for (i = 1; i <= 10;i++)
{
chr = chr * i;
he += chr;
}
printf("%d\n", he);
return 0;
}
可以看到我们将定义的n去掉直接将n的值改为了10这样就可以完美的运行我们的1~10的阶乘和这个代码啦。
3:在一个有序数组中查找具体的某个数字n。
#include<stdio.h>
int main()
{
char arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int k = 0;
scanf_s("%d\n", &k);
int i = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
for (i = 0; i < sz; i++)
{
if (arr[i] == k)
{
printf("找到了,下标是:%d\n", i);
break;
}
else(arr[i] > sz);
{
printf("找不到");
break;
}
}
return 0;
}
从以上代码可以看出,我们先定义一个char类型的arr数组,设置我们要找到的下标数字为k,初始化值为0,通过scanf函数我们就可以自定义k的值, 然后我们设置 i 为要找到的下标,我们设置一个int类型的sz来存储我们 arr[] 内的字符个数,利用总数,除以第一个数,就可以得到我们的总字符个数,然后我们通过for函数,设置i的初始值为0,如果 i 小于我们的总数 sz 我们进入循环,如果我们的 arr[i]; 等于我们设置的自定义数值,我们就打印下标,并且利用break退出我们的循环。
那么如果我们自定义输入的数字大于我们的 sz,我们就打印找不到。