首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请问一下这个小疑点(青年大赛求平均值)

2013-12-11 
请教一下这个小问题(青年大赛求平均值)。#include stdio.h/* 青年歌手参加歌曲大奖赛,有10个评委打分,试

请教一下这个小问题(青年大赛求平均值)。

#include <stdio.h>

/* 青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和一个最低分) */
int main(void)
{
float a[10], min, max, average, sum=0;
int i;

for (i = 0 ; i < 10 ; i++)
scanf("%d", &a[i]);

min = a[0];
for (i = 1 ; i < 10 ; i++)
if (a[i] < min)
min = a[i];

max = a[0];
for (i = 1 ; i < 10 ; i++)
if (a[i] > max)
max = a[i];

for (i = 0 ; i < 10 ; i++)
sum += a[i];
sum = sum - min - max;
average = sum / 8.0;
printf("Average : %f \n", average);

return 0;
}


怎么运行结果是0?
[解决办法]

 for (i = 0 ; i < 10 ; i++)         
    if( scanf("%f", &a[i]) != 1 )
     {
         i--;
     } 

[解决办法]
#include <stdio.h> 
/* 青年歌手参加歌曲大奖赛,有10个评委打分,试编程求选手的平均得分(去掉一个最高分和一个最低分) */
int main(void){
    float a[10]={0.0}, min, max, average, sum=0;
    int i;
 
    for (i = 0 ; i < 10 ; i++)
        scanf("%f", &a[i]); //这里应该是%f不是%d
 
    min = a[0];
    for (i = 1 ; i < 10 ; i++)
        if (a[i] < min)
            min = a[i];
 
    max = a[0];
    for (i = 1 ; i < 10 ; i++)
        if (a[i] > max)
            max = a[i];
 
    for (i = 0 ; i < 10 ; i++)
        sum += a[i];
    sum = sum - min - max;
    average = sum / 8.0;
    printf("Average : %f \n", average);
 
    return 0;
}

你的scanf()函数给的类型不对

热点排行