目录
——do-while循环
在进入循环的时候不检查,而是在执行完一轮循环体的代码之后,再来检查循环的条件是否满足,如果满足则继续下一轮环,不满足则结束循环。
do
{
<循环体语句>
}while ( <循环条件> );
do-while和while循环的区别:在循环体执行结束的时候才来判断条件。也就是说,无论如何,循环都会执行至少一遍,然后再来判断条件。与 while 循环相同的是,条件满足时执行循环,条件不满足时结束循环。
int x;
scanf("%d", &x);
int n = 0;
do
{
x /= 10;
n ++;
} while ( x > 0 );
printf("%d", n);
——猜数游戏
让计算机来想一个数,然后让用户来猜,用户每输入一个数,就告诉它是大了还是小了,直到用户猜中为止,最后还要告诉用户它猜了多少次。
#include <stdio.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;
}
注:循环的条件是a和number不相等
——随机数
每次召唤rand()就得到一个随机的整数。
——%100
x%n的结果是【0,n-1】的一个整数。
——算平均数
让用户输入一系列的正整数,最后输入﹣1表示输入结束,然后程序计算出这些数字的平均数,输入的数字的个数和平均数
变量﹣>算法﹣>流程图﹣>程序
——变量
一个记录读到的整数的变量。
一个变量记录累加的结果,一个变量记录读到的数的个数。
平均数要怎么算?
●只需要每读到一个数,就把它加到一个累加的变量里,到全部数据读完,再拿它去除读到的数的个数就可以了
——算法
1.初始化变量 sum 和 count 为;
2.读入 number;
3.如果 number 不是﹣1,则将 number 加入 sum ,并将 count 加1,回到2;
4.如果 number 是﹣1,则计算和打印出 sum / count (注意换成浮点来计算)。
do {
scanf("%d", &number);
if ( number != -1 ) {
sum += number;
count ++;
}
} while ( number != -1 );
scanf("%d", &number);
while ( number != -1 ) {
sum += number;
count ++;
scanf("%d", &number);
}
——整数求逆
一个整数是由1至多位数字组成的,如何分解出整数的各个位上的数字,然后加以计算。
对一个整数做%10的操作,就得到它的个位数;
对一个整数做/10的操作,就去掉了它的个位数;
然后再对2的结果做%10,就得到原来数的十位数了;
依此类推。
#include <stdio.h>
int main()
{
int x;
//scanf("%d", &x);
x = 整数;
int digit;
int ret = 0;
while ( x > 0 ) {
digit = x%10;
printf("%d",digit);
ret = ret*10 + digit;
// printf("x=%d,digit=%d,ret=%d\n", x, digit, ret);
x /= 10;
}
//printf("%d", ret);
return 0;
}
——for循环
for 循环像一个计数循环:设定一个计数器,初始化它,然后在计数器到达某值之前,重复执行循环体,而每执行一轮循环,计数器值以一定步进进行调整,比如加1或者减1。
for( i=0;i<5;i=i+1 ){
printf("%d",i);
}
——阶乘
n != I ×2×3×4×… ×n
变量:显然读用户的输入需要一个 int 的 n ,然后计算的结果需要用一个变量保存,可以是 int 的 factor ,在计算中需要有一个变量不断地从1递增到 n ,那可以是 int 的 i
i=1(初始动作)
i<=n(循环继续的条件)
i++(循环每轮要做的动作)
for ( count =10; count >0; count --)
●就读成:“对于一开始的 count =10,当count >0时,重复做循环体,每一轮循环在做完循环体内语句后,使得 count --。”
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
int fact = 1;
int i = 1;
for ( i=1; i<=n; i++ ) {
fact *= i;
}
printf("%d!=%d\n", n, fact);
return 0;
}
int i = 1;
for ( i=2; i<=n; i++ ) {
fact *= i;
}
int i = 1;
// for ( i=1; i<=n; i++ ) {
// fact *= i;
// }
for ( i=n; i>1; i--){
fact *= i;
}
int i = n;
// for ( i=1; i<=n; i++ ) {
// fact *= i;
// }
for ( n=n; n>1; n--){
fact *= n;
}
printf("%d!=%d\n", i, fact);