- /*输入学生数并逐个输入学生的身高,然后输出身高的平局值
- */
- #import <Foundation/Foundation.h>
- int num_student();
- double height_student(int students);
- int main(int argc, const char * argv[]) {
-
- //调用函数,获得学生个数
- int student = num_student();
-
- //调用函数,获得平均身高
- double avg = height_student(student);
-
- //打印学生的平均身高
- printf("学生升高的平均值是:%.2f",avg);
-
- return 0;
- }
- //接收用户输入的学生个数,并且进行判断是否合法.
- int num_student(){
-
- int students = 0;
- char ch;
-
- while (ch != '\n') {
-
- printf("请输入学生个数\n");
- rewind(stdin);
- scanf("%d%c",&students,&ch);
-
- }
-
- //返回学生的个数.
- return students;
- }
- //接收用户输入的学生的身高,并且判断输入是否合法.
- double height_student(int students){
-
- double height = 0,total_height = 0;
- char ch;
- int count = 1;
-
- while (1) {
-
- printf("请依次输入%d个学生的升高,现在是第%d个,身高单位为cm,请以合理整数格式输入!\n",students,count);
-
- rewind(stdin);
-
- scanf("%lf",&height);
-
- scanf("%c",&ch);
-
- //如果用户输入的不是整数,就跳转回去重新输入.
- if (ch != '\n') {
- continue;
- }
- //如果输入的升高太奇葩,跳回去重新输入.
- if (height < 50 || height > 250) {
- continue;
- }
- //如果用户输入的是整数,并且在合理取值范围内,输入的次数加1.
- count++;
-
- //计算目前的总身高.
- total_height += height;
-
- //判断当合理输入次数等于学生次数的时候,跳出循环.
- if (count == (students + 1)) {
- break;
- }
- }
-
- //返回平均身高.
- return total_height/students;
-
- }
复制代码 |