??????? 今天主要复习了三种循环即while、for、do while循环方式。主要是通过编写一些题目使自己对三种循环的应用有了进一步的加强。while循环主要用于循环做同一件事情,而for循环更适合一些嵌套式的多变量,对于do while循环则是先循环一次再进行判断,非零继续循环,直到为零停止循环,继续往下走程序。
1.
计算
n
的阶乘。
#include<stdio.h>
int main()
{
int i;
int a=1;
int n;
scanf ("%d",&n);
for(i=1;i<=n;i++)
{
a=a*i;
}
printf("%d",a);
return 0;
}
2. 计算 1!-2!+3!-……+10!
#include<stdio.h>
int main()
{
int i;
double sum=0;
int flag=1;
for(i=1;i<=100;i++)
{
sum+=flag*1.0/i;
flag=-flag;
}
printf("%lf ",sum);
return 0;
}
3.在一组十个数中寻找最大值
#include<stdio.h>
int main()
{
int arr[]={-1,2,3,4,-5,6,7,13,9,10};
int max=arr[0];
int i=0;
for(i=0;i<=10;i++)
{
if(arr[i]>max)
{
max=arr[i];
}
}
printf("%d\n",max);
return 0;
}
4.打印九九乘法表
#include<stdio.h>
int main()
{
int i=0;
int sum=0;
for(i=1;i<=9;i++)
{
int j=0;
for(j=1;j<=i;j++)
{
sum=i*j;
printf("%d*%d=%2d ",i,j,sum);
}
printf("\n");
}
return 0;
}
5.设计一个猜数字游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("**********************************\n");
printf("*********** 1.play ***************\n");
printf("*********** 0.exit ***************\n");
printf("**********************************\n");
}
//RAND_MAX
void game()
{
int ret=0;
int guess=0;
ret=rand()%100+1;
/*printf("%d\n",ret);*/
while(1)
{
printf("请猜数字:>");
scanf("%d",&guess);
if(guess>ret)
{
printf("猜大了\n");
}
else if(guess<ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你猜对了\n");
break;
}
}
}
int main()
{
int input=0;
srand((unsigned int)time(NULL));//拿时间戳来设置随机数生成的起点,time函数
do
{
menu();
printf("请选择>:");
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}
}while (input);
return 0;
}
这个编程较难,主要体现在随机数的产生上,先用时间戳来设置随机数的起点,这样就保证了每次游戏产生的随机数是不一样的,这里要用到#include<time.h>。产生随机数程序为rand(),并且要用到#include<stdlib.h>。
?