08-循环设计
循环计算
循环条件、循环次数的判断
eg:执行了101次,最后有输出0,count的值为1.
若此时代码修改为:
count的值为-1
算平均数
让用户输入一系列的正整数,最后输入-l表示输入结束,然后程序计算出这些数字的平均数,输出输入的数字的个数和平均数
#include <stdio.h>
int main( )
{
int number;
int sum = 0;
int count = 0;
scanf ( "%d" , &number) ;
while ( number != -1 ) {
sum +=number;
count ++;
scanf( "%d", &number) ;
}
printf("%f\n",1.0*sum/ count) ;
return 0;
}
猜数游戏
让计算机来想一个数,然后让用户来猜,用户每输入一个数,就告诉它是大了还是小了,直到用户猜中为止,最后还要告诉用户它猜了多少次。
算法:
I.计算机随机想一个数,记在变量number里;
2.一个负责计次数的变量count初始化为0;
3.让用户输入一个数字a;
4.count递增(加一);
5.判断a和number的大小关系,如果a大,就输出“大”;如果a小就输出“小”;
6.如果a和number是不相等的(无论大还是小,程序转回到第3步;
7.否则,程序输出“猜中”和次数,然后结束。
#incluae <stdio.h>
#include <stdlib.h>
#include <time.h>
int main( ){
srand(time(0));
int number = rand()%100+1;
int count = 0;
int a = 0;
printf("我已经想好了一个1到100之间的数。");
do {
printf("请猜这个1到100之间数:");
scanf( "%d",&a);
count ++;
if ( a > number ) {
printf("你猜的数大了。");
}else if ( a < number ) {
printf("你猜的数小了。");
}
}while (a != number);
printf("太好了,你用了%d次就猜到了答案。\n",count);
return 0;
}
注:电脑给的随机数rand()很大,若对其%100可随机生成100以内的随机数
整数求逆
#include <stdio.h>
int main( ){
int x;
//scanf( "%d",&x);
x = 12345;
int digit;
int ret = 0;
while ( x> 0 ) {
digit = x%10;
// printf ( "%d\ n", digit);
ret = ret*10 +digit;
printf( "x=%d ,digit=%d , ret=%d\n",x,digit, ret);
x /= 10;
}
printf("%d", ret) ;
return 0;
}
运行结果:
判断和循环常见的错误
- if语句常见的错误
忘记大括号
if后面加了分号
错误使用" == “和”=" - if只要求()里的值零或非零
- 代码风格
在if和else之后必须加{}形成语句块,{}内的语句缩进一个tab的位置