| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2246 人关注过本帖, 1 人收藏
标题:哪里有错误啊?输入分数后就出错变乱码了。。。
只看楼主 加入收藏
c语言总虐我
Rank: 2
等 级:论坛游民
帖 子:112
专家分:66
注 册:2014-11-22
结帖率:91.67%
收藏(1)
已结贴  问题点数:15 回复次数:29 
哪里有错误啊?输入分数后就出错变乱码了。。。
哪里有错啊???定义一个函数,功能是计算n个学生的成绩中,高于平均成绩的人数,并作为函数的返回值。用主函数来调用它,统计50个学生成绩中,高于平均成绩的有多少人?
#include<stdio.h>
#include<stdlib.h>
double more()
{
    double ave=0,m[50];
    int i,num=0;
    for(i=0;i<m[50];i++)
    {
        if(m[i]>ave)
            num++;
    }
    return num;
}
    int main()
{
    int a,i,x;
    double m[50];
    double ave=0,sum=0;

    printf("请输入学生的人数:");
    scanf("%d",&a);
    printf("请输入学生的分数:");
    scanf("%f",&m[50]);
   
    for(i=0;i<50;i++)
    {
        scanf("%f",m[i]);
        sum+=m[i];
   
    }
    ave=sum/i;

    x=more();
    printf("高于平均分的人:%d",x);
    system("pause");
    return 0;
}
搜索更多相关主题的帖子: include double return 统计 
2014-11-24 23:19
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
C++ 放在了 vfp 论坛讨论。
2014-11-25 00:17
BuilderZ
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:82
专家分:123
注 册:2014-9-22
收藏
得分:3 
rewrite the code:(lots of mistake)
程序代码:
#include<stdio.h>
#include<stdlib.h>
int more(double ave,int m[],i)
{
int sum=0;
for(i=1;i<51;i++)
{
if(m[i]>ave)
{
sum++;
};
};
return sum;
};
int main()
{
int num,i=51,x;
double score,m[51];
printf("Please input the number of student: \n");
scanf("%d",&num);
printf("Please input the ave score: \n");
scanf("%f",&score);
printf("Please input the score of 50 students: \n");
for(a=0;a<51;a++)
{
scanf("%f",&m[i]);
};
x=more(score,m[],i);
printf("%d",x);
system("pause");
};
there may be some wrong,but just some small problem
2014-11-25 03:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
还没搞出来啊?

授人以渔,不授人以鱼。
2014-11-25 10:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
出亂碼的原因在描紅的兩處:

    scanf("%f",&m[50]);
   
    for(i=0;i<50;i++)
    {
        scanf("%f",m[i]);
        sum+=m[i];
   
    }

[ 本帖最后由 TonyDeng 于 2014-11-25 11:19 编辑 ]

授人以渔,不授人以鱼。
2014-11-25 11:02
c语言总虐我
Rank: 2
等 级:论坛游民
帖 子:112
专家分:66
注 册:2014-11-22
收藏
得分:0 
回复 3 楼 BuilderZ
more()里的i可以这样写???长知识了。。。还有就是输不出,我想知道我哪里错了啊?我觉得很对啊。。。

连渣都不是——5.8
要拜雍正,专治八阿哥  b u g——6.27
2014-11-25 11:50
c语言总虐我
Rank: 2
等 级:论坛游民
帖 子:112
专家分:66
注 册:2014-11-22
收藏
得分:0 
回复 5 楼 TonyDeng
为什么错啊?怎么改啊?我觉得我做的很对啊。。。

连渣都不是——5.8
要拜雍正,专治八阿哥  b u g——6.27
2014-11-25 11:50
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:2 
以下是引用c语言总虐我在2014-11-25 11:50:51的发言:

为什么错啊?怎么改啊?我觉得我做的很对啊。。。

你定義m[50]的數組,第m[50]個元素在哪裏?在scanf()一個浮點數的時候,你看看書上的格式應該怎樣,回憶一下scanf()一個整數是怎樣的。

授人以渔,不授人以鱼。
2014-11-25 11:53
c语言总虐我
Rank: 2
等 级:论坛游民
帖 子:112
专家分:66
注 册:2014-11-22
收藏
得分:0 
回复 8 楼 TonyDeng
看不懂。。。。

连渣都不是——5.8
要拜雍正,专治八阿哥  b u g——6.27
2014-11-25 11:55
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你int i的時候,是不是scanf("%d", &i)?那麽這裏就應該是scanf("%lf", &m[i])。
注意:對double類型,scanf()的格式符是%lf,L的小寫,float才是%f。你不光缺了l,致命的是缺了取地址符&,這才是崩潰和出亂碼的直接原因。

授人以渔,不授人以鱼。
2014-11-25 11:59
快速回复:哪里有错误啊?输入分数后就出错变乱码了。。。
数据加载中...
 
   



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

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