黑马程序员技术交流社区
标题:
这道题求大神帮忙解决下?
[打印本页]
作者:
★彬★卍囧神
时间:
2014-5-13 22:18
标题:
这道题求大神帮忙解决下?
//1> 提示输入5个学生的成绩,算出平均分、最高分、最低分,然后输出?
#include <stdio.h>
#include"stdafx.h" //还有为什么要用这个头文件,是因为这句scanf("%d",&a[i])?
int main()
{
printf("请输入5个学生的成绩:\n"); //输入的成绩可以是小数,可是我把程序全换成double用行不出来问什么?
int a[5];
int min,max,i;
double aver,sum;
for( 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=%d\n min=%d\n", aver, max, min);
return 0;
}
复制代码
作者:
兰闻天
时间:
2014-5-13 22:37
本帖最后由 兰闻天 于 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;
}
运行试试吧
作者:
傘が咲く
时间:
2014-5-13 22:40
#include <stdio.h>
// #include"stdafx.h" //这句很明显是自定义的头文件,此函数中用不到,所以这句删除
int main()
{
double a[5]; // 把int型的数组改为 double型
double min,max,aver,sum; // 统统换成double
int i;
//提示输入 5个学生的成绩
printf("请输入5个学生的成绩:\n");
for( i=0; i<5; i++)
scanf("%lf",&a[i]);
min = a[0]; // min的初始化
max = a[1]; // max的初始化
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); // 把输出格式 全部改为 %f
return 0;
}
复制代码
作者:
大龄产妇
时间:
2014-5-13 22:53
#include"stdafx.h" <>是调用系统头文件需要的声明,“ .h”文件是自己编译的头文件,有其他功能性的函数需要调用。一般用TC或vc编译C程序的时候都要首先包含这个stdio.h头文件,这个头文件里面包含了scanf和printf函数的定义,如果我们不在程序开头include这个文件,那么你调用上面这两个函数就不会成功,它其实和c++中的iostream(iostream:这个就是1998年标准化以后的标准头文件;iostream.h: 这个就是标准化以前的头文件)文件的作用差不多的,它们一般都已经在stdafx.h文件中被包含。
作者:
奇迹
时间:
2014-5-14 00:17
printf(" aver=%f\n max=%d\n min=%d\n", aver, max, min);
这句话是打印float类型的
作者:
LJZkevin
时间:
2014-5-14 11:17
// 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) ;我觉不该加括号,但是也不错,因为加括号是不是条件表达式变成赋值语句了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2