A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 紮西诺尔布 中级黑马   /  2015-4-14 23:33  /  1596 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

要求“输入学生数并逐个输入学生的身高,然后输出身高的平均值”。
由于学生人数不确定,该如何设计,接收每次输入的学生的身高,不可能只定义一个身高变量???求解答???帮帮忙,谢谢!!!!!!

5 个回复

倒序浏览
如果只是求平均值的话,可以定义一个身高总和
每次输入一个身高数据就加进身高总和
等输入完毕输出身高总和/学生人数
如果身高还有其他用处的话,可以定义一个float数组来存放,学生人数如果不太多,可以自己定义个数组容量
回复 使用道具 举报
我就是来水水,我是波波
回复 使用道具 举报
  1. /*输入学生数并逐个输入学生的身高,然后输出身高的平局值
  2. */

  3. #import <Foundation/Foundation.h>
  4. int num_student();
  5. double height_student(int students);

  6. int main(int argc, const char * argv[]) {
  7.    
  8.     //调用函数,获得学生个数
  9.     int student = num_student();
  10.    
  11.     //调用函数,获得平均身高
  12.     double avg = height_student(student);
  13.    
  14.     //打印学生的平均身高
  15.     printf("学生升高的平均值是:%.2f",avg);
  16.    
  17.     return 0;
  18. }

  19. //接收用户输入的学生个数,并且进行判断是否合法.
  20. int num_student(){
  21.    
  22.     int students = 0;
  23.     char ch;
  24.    
  25.     while (ch != '\n') {
  26.         
  27.         printf("请输入学生个数\n");
  28.         rewind(stdin);
  29.         scanf("%d%c",&students,&ch);
  30.         
  31.     }
  32.    
  33.     //返回学生的个数.
  34.     return students;
  35. }

  36. //接收用户输入的学生的身高,并且判断输入是否合法.
  37. double height_student(int students){

  38.     double height = 0,total_height = 0;
  39.     char ch;
  40.     int count = 1;
  41.    
  42.     while (1) {
  43.         
  44.         printf("请依次输入%d个学生的升高,现在是第%d个,身高单位为cm,请以合理整数格式输入!\n",students,count);
  45.         
  46.         rewind(stdin);
  47.         
  48.         scanf("%lf",&height);
  49.         
  50.         scanf("%c",&ch);
  51.         
  52.         //如果用户输入的不是整数,就跳转回去重新输入.
  53.         if (ch != '\n') {
  54.             continue;
  55.         }
  56.         //如果输入的升高太奇葩,跳回去重新输入.
  57.         if (height < 50 || height > 250) {
  58.             continue;
  59.         }
  60.         //如果用户输入的是整数,并且在合理取值范围内,输入的次数加1.
  61.         count++;
  62.         
  63.         //计算目前的总身高.
  64.         total_height += height;
  65.         
  66.         //判断当合理输入次数等于学生次数的时候,跳出循环.
  67.         if (count == (students + 1)) {
  68.             break;
  69.         }
  70.     }
  71.    
  72.     //返回平均身高.
  73.     return total_height/students;
  74.    
  75. }
复制代码
回复 使用道具 举报
板凳是大牛啊
回复 使用道具 举报
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int n,m;
  5.     float sum=0;
  6.     printf("请输入学生个数:\n");
  7.     scanf("%d",&n);
  8.     m=n;
  9.     while(m!=0){
  10.         float b;
  11.         printf("请输入学生身高:\n");
  12.         scanf("%*c%f",&b);
  13.         sum+=b;
  14.         m--;
  15.     }
  16.    
  17.     printf("学生的平均值是:%.2f\n",sum/n);
  18.     return 0;
  19. }
复制代码




是这样?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马