C语言,多重循环 及 综合练习

多重循环

1)将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while 均可以作为外层循环和内层 循环。【建议一般使用两层,最多不要超过 3 层】, 如果嵌套循环过多,会造成可读性降低
2)实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为 false 时,才会完全 跳出内层循环,才可结束外层的当次循环,开始下一次的循环, 举例说明。
3)设外层循环次数为 m 次,内层为 n 次,则内层循环体实际上需要执行 m*n 次

应用实例

1)统计 3 个班成绩情况,每个班有 5 名同学,求出各个班的平均分和所有班级的平均分[学生的成绩从键盘输入]。统计三个班及格人数,每个班有 5 名同学。

#include<stdio.h>
#include<string.h>


void main(){
	 
	//1) 统计 3 个班成绩情况,每个班有 5 名同学,求出各个班的平均分和所有班级的平均分[学生的成绩从键盘输入]。 
	//2) 统计三个班及格人数,每个班有 5 名同学。
	
	// 编程技巧 1. 先死后活 2. 先简单再复杂(分解) 3. 根据需要增加或修改相应的代码 
	//1. 各个班的平均分 
	//2. 所有班级的平均分, 得到所有班级的总分 allClassTotalScore 
	//3. 定义变量表示 班级个数 classNum , 定义变量表示 学生个数 stuNum 
	//4. 定义变量 classTotalScore 每个班级总分 
	//5. 定义变量 score , 接收学生成绩 
	//6. 使用两层 for 循环
	
	
	//增加新功能 统计三个班及格人数,每个班有 5 名同学 
	//分析 
	//1. 定义一个变量 count ,保存及格人数 
	//2. 当接收到一个学生成绩后,就看看是否及格,如果及格,则累计到 count
	
	int stuNum = 5;
	int classNum = 3;
	double classTotalScore = 0.0;
	double score = 0.0;
	double allClassTotalScore = 0.0; 
	
	int count;
	int i,j; //内层外层循环
	
	for(i = 1;i<= classNum;i++){
		
		classTotalScore = 0.0; //清空一个循环的分数 
		
		for(j=1;j<=stuNum;j++){
			printf("\n请输入第%d个班的第%d个学生的成绩:",i,j);
			scanf("%lf",&score);
			
			if(score > 60){
				count++;
			}
			classTotalScore += score; //累计成绩
		}
		
		allClassTotalScore += classTotalScore; //累计所有班级成绩
		printf("\n第%d个班级的平均分 = %.2f", i, classTotalScore / stuNum);
		
	}
	
	printf("\n所有班级的平均分 = %.2f", allClassTotalScore / (stuNum * classNum));
	printf("\n所有班级的及格人数 = %d", count);
	
	getchar();
	getchar();
	
}

2)打印出九九乘法表

#include<stdio.h>
void main() {


	int i,j;

	for(i = 1; i<=9; i++) {
		for(j = 1; j <= i;j++){
			printf("%d * %d = %d   ",j,i,j*i);
		}
		printf("\n");
	}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值