一、X、Y循环语句
问题,总共打印了几个呵呵呢?
这里使用了逻辑符号 && 表示需要同时满足。
#include <stdio.h>
int main()
{
int x,y;
for (x=0,y=0;x<2 && y<5 ; x++,y++)
{
printf("hehe\n");
}
return 0;
}
二、do - while 循环
#include <stdio.h>
int main()
{
int i=1; // 循环变量
do // 需要做的事。执行语句
{
if (i==5)
{
break;
//continue;
}
printf("%d ",i);
i++;
}
while (i<=10); //循环条件,表达式。若为假循环结束。
return 0;
}
三、N的阶乘---n!
ret = ret*i 表示阶乘。
#include <stdio.h>
int main()
{
int i =0;
int n =0;
int ret =1;
scanf("%d",&n);
for (i=1; i<=n; i++)
{
ret = ret*i; //连乘
}
printf("ret=%d\n",ret);
return 0;
}
四、阶乘相加
1!+2!+3!+4!+5!
每次阶乘的起始都是从1开始,因此需要在起始位置增加 ret=1;
sum=sum+ret ,将所有的阶乘累加起来。
#include <stdio.h>
int main()
{
int i =0;
int n =0;
int ret =1;
int sum =0;
for (n=1;n<=10; n++)
{
ret=1; //起始位置
for (i=1; i<=n; i++)
{
ret = ret*i; //连乘
}
sum=sum+ret; //不断累加
}
printf("sum=%d\n",sum);
return 0;
}
每一个阶乘都是在前面的阶乘*n,如 5!=4!*5
因此上面的代码可以简写为
#include <stdio.h>
int main()
{
int n =0;
int ret =1;
int sum =0;
for (n=1;n<=10; n++)
{
ret = ret*n; //连乘
sum=sum+ret; //不断累加
}
printf("sum=%d\n",sum);
return 0;
}
五、在数组里面查找数字,也就是下标。
sizeof计算字节数量。
总字节数量/单个字节数量 = 元素的个数。
#include <stdio.h>
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int k = 7;
//写一个代码,在arr的数组里面找到7
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;
}
第八天打卡(如何快速的学习C/C++语言)