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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ★彬★卍囧神 中级黑马   /  2014-5-13 22:18  /  1367 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. //1>        提示输入5个学生的成绩,算出平均分、最高分、最低分,然后输出?
  2. #include <stdio.h>
  3. #include"stdafx.h"                                 //还有为什么要用这个头文件,是因为这句scanf("%d",&a[i])?
  4. int main()
  5. {
  6.         printf("请输入5个学生的成绩:\n");                  //输入的成绩可以是小数,可是我把程序全换成double用行不出来问什么?
  7.         int a[5];
  8.         int min,max,i;
  9.         double aver,sum;
  10.         for( i=0; i<5; i++)
  11.                 scanf("%d",&a[i]);
  12.                 min = a[0];
  13.                 max = a[1];
  14.         for( i=0; i<5; i++)
  15.         {
  16.                         sum += a[i];
  17.                         max = (a[i] > max ? a[i] : max);
  18.                                 min = a[i] < min ? a[i] : min;
  19. }
  20.         aver=sum/5;
  21.         printf(" aver=%f\n max=%d\n min=%d\n", aver, max, min);
  22.         return 0;
  23. }
复制代码


评分

参与人数 1技术分 +2 收起 理由
admin + 2

查看全部评分

5 个回复

正序浏览
// int a[5];
// int min,max,i;
//  double aver,sum;
不要定义成整形的数组,改成double;
最大最小值也可能为小数,所以double min,max,aver,sum;
for循环的次数 i 为整形 也可以 for(int i=0;i<5;i++);
//max = (a[i] > max ? a[i] : max);
// min = a[i] < min ? a[i] :min
max = (a[i] < min ? a[i]:max) ;我觉不该加括号,但是也不错,因为加括号是不是条件表达式变成赋值语句了。
回复 使用道具 举报
printf(" aver=%f\n max=%d\n min=%d\n", aver, max, min);
这句话是打印float类型的
回复 使用道具 举报
#include"stdafx.h"  <>是调用系统头文件需要的声明,“ .h”文件是自己编译的头文件,有其他功能性的函数需要调用。一般用TC或vc编译C程序的时候都要首先包含这个stdio.h头文件,这个头文件里面包含了scanf和printf函数的定义,如果我们不在程序开头include这个文件,那么你调用上面这两个函数就不会成功,它其实和c++中的iostream(iostream:这个就是1998年标准化以后的标准头文件;iostream.h: 这个就是标准化以前的头文件)文件的作用差不多的,它们一般都已经在stdafx.h文件中被包含。
回复 使用道具 举报

  1. #include <stdio.h>
  2. // #include"stdafx.h"  //这句很明显是自定义的头文件,此函数中用不到,所以这句删除


  3. int main()
  4. {
  5.    
  6.     double a[5];      // 把int型的数组改为 double型
  7.     double min,max,aver,sum;    // 统统换成double
  8.     int i;
  9.    
  10.     //提示输入 5个学生的成绩
  11.     printf("请输入5个学生的成绩:\n");
  12.     for( i=0; i<5; i++)
  13.         scanf("%lf",&a[i]);
  14.    
  15.     min = a[0];     // min的初始化
  16.     max = a[1];     // max的初始化
  17.     for( i=0; i<5; i++)
  18.     {
  19.         sum += a[i];
  20.         max = (a[i] > max ? a[i] : max);
  21.         min = a[i] < min ? a[i] : min;
  22.     }
  23.     aver=sum/5;
  24.     printf(" aver=%f\n max=%f\n min=%f\n", aver, max, min);   // 把输出格式 全部改为 %f
  25.     return 0;
  26. }
复制代码
回复 使用道具 举报
本帖最后由 兰闻天 于 2014-5-13 22:44 编辑

复制代码
//1>        提示输入5个学生的成绩,算出平均分、最高分、最低分,然后输出?
#include <stdio.h>
int main()
{
        printf("请输入5个学生的成绩:\n");                  //输入的成绩可以是小数,可是我把程序全换成double用行不出来问什么?
        double a[5]; // 几人成绩可以是小数,那就不要用int
        double min,max;
        double aver,sum;
        for( int i=0; i<5; i++)
                scanf("%d", &a[ i]);
                min = a[0];
                max = a[1];
        for( i=0; i<5; i++)
        {
                        sum += a[ i];
                        max = (a[ i] > max ? a[ i] : max);
                                min = a[ i] < min ? a[ i] : min;
}
        aver=sum/5;
        printf(" aver=%f\n max=%f\n min=%f\n", aver, max, min);
        return 0;
}

运行试试吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马