C语言-5

目录

——do-while循环

——猜数游戏

——随机数

——%100

——算平均数

——变量

——算法

——整数求逆

——for循环

——阶乘


——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);
	

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值