C语言小白的第九课:while循环语句

while语句本身语法很简单,此处列举它的几个应用实例。

1、关于逆向输出一个数字(例如输入1234输出4321)的一个很好的点子

int main() {
	int a = 0;
	scanf("%d", &a);
	while (a > 0) {
		printf("%d", a % 10);
		a /= 10;
	}
	return 0;
}

利用取余数得到数字最后一位,然后除以10把数字右移一位,以此往复知道取完(此时数字a<0)

2、关于定量打印字符,如命令打印几个*就打印几个。原理是利用while语句,每打印一次减1,直到<0,跳出循环。

int main() {
	int a = 0;
	printf("输入\n");
	scanf("%d", &a);
	while (a-->0) 
		printf("*" );	
	return 0;
}

升级版:交替打印+号与-号,使得他们的总数是我输入的数字

这个代码我写得不够好,因为使用了goto且没有用上while(理论上是可以的)。但对我来说这也是无奈之举,因为我再打印+或-前都需要进行判断,这就不得不使用if

int main() {
	int a = 0;
	printf("input:\n");
	scanf("%d", &a);
	here:
	if (a > 0) {
		printf("+");
		a--;
		if (a > 0) { printf("-"); a--; goto here; }
	}
	return 0;
}

再升级版:指定输入数字的个数,再依次输入这么多个数,然后计算和与平均

int main() {
	int a = 0,i = 1;
	int sum = 0, tam = 0;
	printf("how many integer do you want to input: \n");
	scanf("%d", &a);
	while (i<= a) {
		printf("No.%d\n", i);
		scanf("%d", &tam);
		sum += tam;
		i += 1;
	}
	printf("sum is %d, average is %f\n", sum, (double)sum / a);
	return 0;
}

综观这几个代码,对于有些任务,乍一看需要创建未知个变量(例如最后一个输入指定的个数的数字),又或者要打印未知个个数的字符,而这些都可以用while语句通过另一种方式实现,就是再设一个变量,每循环一次减1,直到完成指定次数。有时这也对思维提出了挑战,比如第一个逆向输出数字的例子。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值