C语言三种循环的应用小例

判断成绩是否及格的循环应用

C语言复习循环模块——小题大做(一)

题目描述:通过键盘输入学生成绩,60分以上为及格,以下不及格

对于这个简单的问题,我想大多数入门及以上的程序员都会选择if-else循环来实现吧。其实我个人初学的时候也是用if-else循环单纯实现该问题。如果用while循环或者for循环能否实现该问题呢。答案是肯定的!

程序流程图
在这里插入图片描述

if-else实现

void f2() {
	int x; //成绩
	printf("请输入学生成绩2:\n");
	scanf_s("%d", &x);
	if (x >= 60)
		printf("成绩及格.\n");
	else
		printf("成绩不及格.\n");
}

首选if-else循环来实现,原因有:
1,逻辑简单明了,符合常规思维方式;
2,程序简洁,不易出错。

while实现

int f1() {
	int x;
	printf("请输入学生成绩1:\n");
	scanf_s("%d", &x);
	while (x>= 60) {
		printf("成绩及格.\n");
		return 0;
	}
	printf("成绩不及格.\n");
	return 0;
}

跟if-else比较起来很相似,不过需要注意返回值的位置,容易产生死循环的错误。

for实现

int x; //成绩
	printf("请输入学生成绩3:\n");
	scanf_s("%d", &x);
	for (int i = x; i < 60;) {
		printf("成绩不及格.\n");
		return 0;
	}
	    printf("成绩及格.\n");
		return 0;
}

相对于前两种方式,显然有点冗余的意思。并且同样有容易产生死循环的潜在问题。

细心的小伙伴可能会发现在输入语句用了scanf_s而不是scanf,原因是在VS里面scanf被认为是不安全的,即为_CRT_SECURE_NO_WARNINGS错误。解决该问题的方法有两种:一,在头文件前面第一行添加**#define _CRT_SECURE_NO_WARNINGS**语句;二,把scanf写成scanf_s。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值