循环中变量的作用域
循环中变量的作用域
背景:
输入某班学生某门课的成绩(最多不超过40人),
当输入为负值时,表示输入结束,
用函数编程统计成绩不低于平均分的学生人数。
要求:
(1)按如下函数原型进行编程:
int GetAboveAver(int score[], int n);
(2)在主函数中:
输入学生成绩,
然后调用函数GetAboveAver计算成绩不低于平均分的学生人数,
最后输出该人数。
要求:
(1)学生成绩和平均分均定义为int类型
(2)**无输入提示信息
**输入格式为:”%d”
**输出格式为:”Students of above average is %d\n”
程序运行示例:
88 75 86 67 59 66 -1↙
Students of above average is 3
代码实现:
1 | |
总结
- for循环中括号内定义的变量只存于在循环中
- 出了for循环,变量就死掉了
- 解决方法,将定义的语句提出来到循环之前
- while循环中定义的变量无效
- 在while循环中定义变量,会导致每次循环的改变量会反复赋值为初始值
- 如果定义全局变量,可以解决这个问题,但仍会导致出了这个循环,变量死掉
- 解决方法,同上提出来
- 注意for循环的三个表达式的执行顺序,尽量老老实实地通过break语句打破循环,而不是放到括号内去判断
这个题目看似简单,但要求对循环的运行机理有充分的认识
循环中变量的作用域
http://example.com/2025/12/06/循环中变量的作用域/