用三种不同的循环结构计算班上所有同学的期末成绩


前言

我终于将循环语句大致的学了一遍,所以我打算对我学到的东西进行总结。在大学的时候,有一个老师让我帮他统计班上同学的期末成绩。我们的期末成绩是平时作业的30% + 考勤分的10% + 期末考试成绩的 60%,而我们班上有52位同学,如果想用C语言实现这个功能,仅仅只用顺序结构是不够的,所以接下来我想用几个不同的循环来实现这个功能。


一、循环结构

1、for循环
语法:
for(初始化; 判断; 调整){语句;}
2、while循环
语法:
while(判断;){语句;}
3、do while循环
语法:
do {语句;}while(判断);
注意:在写do while循环时,while()后面要加分号

二、这三种循环分别是怎样运行的

1.for循环

首先执行初始化语句,然后判断是否为真,为真就进入循环执行语句,语句执行完后,计算i++,接着继续判断,一 直到为假时跳出循环。
代码如下(示例):

#include <stdio.h>
int main(void)
{
	char name[20] = { 0 };//姓名
	int usual = 0;//平时分
	int attend = 0.0f;//考勤分
	int exam = 0.0f;//期末成绩
	float final = 0.0f;//最终成绩
	int i = 0;
	
	for (i = 1; i <= 52; i++)
	{
		printf("请输入姓名:>\n");
		scanf_s("%s", name, 20);
		printf("请输入平时分 考勤分 期末成绩:>\n");
		scanf_s("%d %d %d", &usual, &attend, &exam);
		final = usual * 0.3 + attend * 0.1 + exam * 0.6;
		printf("###### %s同学的成绩是%.1lf ######\n", name, final);
	}
	
	return 0;
}

2.while循环

首先判断是否为真,如果为真就进入循环执行语句,一直到i++执行之后,再次进入while进行判断,如果为真就继续执行,为假就跳出循环。
代码如下(示例):

#include <stdio.h>
int main(void)
{
	char name[20] = { 0 };//姓名
	int usual = 0;//平时分
	int attend = 0.0f;//考勤分
	int exam = 0.0f;//期末成绩
	float final = 0.0f;//最终成绩
	int i = 0;
	
	while(i < 52)
	{
		printf("请输入姓名:>\n");
		scanf_s("%s", name, 20);
		printf("请输入平时分 考勤分 期末成绩:>\n");
		scanf_s("%d %d %d", &usual, &attend, &exam);
		final = usual * 0.3 + attend * 0.1 + exam * 0.6;
		printf("###### %s同学的成绩是%.1lf ######\n", name, final);
		i++;
	}

	return 0;
}

3.do while循环

do while循环与whlie循环最大的不同就是,首先必须先执行do里面的语句一次然后再进行判断。
代码如下(示例):

#include <stdio.h>
int main(void)
{
	char name[20] = { 0 };//姓名
	int usual = 0;//平时分
	int attend = 0.0f;//考勤分
	int exam = 0.0f;//期末成绩
	float final = 0.0f;//最终成绩
	int i = 0;
	
	do
	{
		printf("请输入姓名:>\n");
		scanf_s("%s", name, 20);
		printf("请输入平时分 考勤分 期末成绩:>\n");
		scanf_s("%d %d %d", &usual, &attend, &exam);
		final = usual * 0.3 + attend * 0.1 + exam * 0.6;
		printf("###### %s同学的成绩是%.1lf ######\n", name, final);
		i++;
	} while (i < 52);

	return 0;
}

总结

以上是我对三种循环结构的写法,以及它们分别是如何运行的总结,可能不是特别完善,我下次再对break语句和continue语句的用法与区别进行总结。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值