1.猜数游戏
思路:
先让系统随机取数赋值到number,
再定义count来统计猜的次数,
最后定义c用来接收输入的值(因为while循环的条件c不能未定义,所以先给它一个值。),
将do...while循环的条件设置为c!=number时可以继续执行,
在do...while里面设置输入语句,每输入一次,count就会增加一次。
如果c>number,则提示“猜大了”,否则提示“猜小了”。
程序到这基本就完成了。
要控制随机数的范围可以%(取模),下面注释有写。
下面是参考代码,但是实现的代码不止这一种,大家也可以自己去改进代码。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
srand(time(0));
//int a = rand(); //产生随机数
//int b = rand() % 100;//产生100以内的随机数
int number = rand() % 100 + 1; // 产生1到100以内的随机数
int count = 0;
int c = 0;
do {
printf("请猜一下这个1到100之间的数:");
scanf_s("%d", &c);
count++;
if (c > number) {
printf("猜大了\n");
}
else if (c < number) {
printf("猜小了\n");
}
} while (c != number);
printf("猜对了,你一共用了%d次就猜出来了。",count);
}
2.平均数计算
平均数计算思路:
我们可以将输入的数全部加起来,输一个加一个,再定义一个count来统计输入次数(也就是除数),
这我们就要用到while循环了,
设置循环结束条件为输入的数为-1,
用sum += number 来加每次输入的数(sum += number相当于sum=sum+number),
用count来统计次数,
再设置一个输入语句以便再次输入,
平均数 = sum/count,
最后在while循环外输出平均数。
因为平均数有可能是浮点数,我们的占位符需要变成“%lf”,
又因为sum和count的类型是int,
所以我们要在sum或count旁边乘一个1.0将它变为浮点数。
当浮点数和整数放到一起运算时,浮点数会将整数转换为浮点数。
或者直接将变量类型定义为double也行。
#include <stdio.h>
int main() {
//求输入数的平均数,输入-1结束输入
int sum = 0;
int number;
int count=0;
scanf_s("%d", &number);
while (number!=-1)
{
sum += number;
count++;
scanf_s("%d", &number);
}
printf("平均数为%lf", 1.0*sum / count);
}
3.正整数分解
思路:
正整数分解用取模的方法
当我们要取个位数时:number%10
十位数时:number%100
百位数时:number%1000
。。。
以此推类。
去掉数字的十位,百位等等就把上面的“%”改为“/”就行了
要将每个数字提取出来,“%”和“/”都要用到。
设置变量x来接收输入的数,
设置digit来输出每次取出来的数,
设置ret来将数字反过来放。
设置条件为x>0,只剩一位数时除以10的整数x=0。
剩下的大家看代码和结果慢慢理解吧。
#include <stdio.h>
int main() {
//正整数分解
int x;
scanf_s("%d", &x);
int digit;
int ret = 0;
while(x>0){
digit = x % 10;;
ret = ret * 10 + digit;
printf("x=%d,digit=%d,ret=%d\n", x,digit,ret);
x /= 10;
}
这个是输出的结果。