标题:大家帮我看看这道题什么地方错了。。
只看楼主
mey
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:134
注 册:2009-11-19
结帖率:100%
已结贴  问题点数:15 回复次数:13 
大家帮我看看这道题什么地方错了。。
程序代码:
#include"stdio.h"
float fs(float arr[],int n)
{
    float sum=0.0,average;
    int i;
    for(i=0;i<n;i++)
        sum+=arr[i];
    average=sum/n;
    return average;
}
int rs(float arr[],int n)
{
    float sum=0.0,average;
    int i,k=0;
    for(i=0;i<n;i++)
        sum+=arr[i];
    average=sum/n;
    for(i=0;i<n;i++)
        if(arr[i]>average)
            k++;
    return k;
}
void main()
{
    int a[10000];
    int i,ave;
    float sum;
    printf("请输入n个数 输入z结束\n");
    for(i=0;i<10000;i++)
    {
        scanf("%d",&a[i]);
        if(getchar()!='z')
            continue;
        else
        {
            printf("你输入了%d个数\n",i);
            break;
        }
    }
    ave=rs(a,i);
    sum=fs(a,i);
    printf("这%d个数的总和是%.2f\n",i,sum*i);
    printf("平均分是%.2f\n",sum);
    printf("分数比平均分高的有%d个\n",ave);
    getch();
}
为什么总和跟平均值都是0 ?很不解
搜索更多相关主题的帖子: average 
2010-04-13 20:31
酷酷甜菜
Rank: 2
等 级:论坛游民
帖 子:15
专家分:29
注 册:2010-4-11
得分:0 
int a[10000];改为float a[10000]

你的形参是用 浮点型的
你的实际参数也应该是 浮点型 不是整形的
2010-04-13 21:40
酷酷甜菜
Rank: 2
等 级:论坛游民
帖 子:15
专家分:29
注 册:2010-4-11
得分:0 
对了 你的这个代码
不知道我理解是对不对
比如 你输入12 23 3z
是不是要输出3个数?
可得到的结果只有2个数 12 和 23
3是得不到的

2010-04-13 21:52
mey
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:134
注 册:2009-11-19
得分:0 
3z得是2个数。。因为成绩有z就不对了嘛
2010-04-13 22:25
mey
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:134
注 册:2009-11-19
得分:0 
2楼的老大。改为float还是0
2010-04-13 22:25
酷酷甜菜
Rank: 2
等 级:论坛游民
帖 子:15
专家分:29
注 册:2010-4-11
得分:15 
回复 5楼 mey
抱歉啊
忘记说了
scanf("%d",&a[i]);该为scanf("%f",&a[i])
把类型改了这里也要改  
2010-04-13 23:04
mey
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:134
注 册:2009-11-19
得分:0 
感谢楼上的老大啊。。我还是个新手 受教了
2010-04-14 06:55
mey
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:134
注 册:2009-11-19
得分:0 
if(getchar()!='z')
如果这里改成是 输入0-9以外的数就结束 该怎么改。。
2010-04-14 07:18
mey
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:137
专家分:134
注 册:2009-11-19
得分:0 
6楼老大再帮一下
2010-04-14 12:27
酷酷甜菜
Rank: 2
等 级:论坛游民
帖 子:15
专家分:29
注 册:2010-4-11
得分:0 
回复 9楼 mey
if(getchar()!='z')
改为if(getchar()<='9'||getchar()>='0') 就可以了

2010-04-14 12:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-302867-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.500233 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved