| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 985 人关注过本帖
标题:求助——统计分数问题
只看楼主 加入收藏
xuan228
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-11-26
结帖率:100%
收藏
 问题点数:0 回复次数:10 
求助——统计分数问题
刚学C的,不是很懂,请帮忙看看,谢谢
题目:统计30个人的平均分数和最高分数。
输入数字运行后出错,提示“0x102de42e”指令引用的“0xcccccccc”。该内存不能为“written”。
请问是什么问题,如何解决?
因为要输入30个数,要自己计数,容易出错,我想每输入6个数就自动换行再接着输该怎么实现呢?
或者如何得到scanf函数的返回值,确定输入了30个整数?不用数组的话,只用几个变量我会返回,
换成数组就不知道怎么解决了,希望大家帮下忙,谢谢

#include <stdio.h>
#define N 30
int main()
{
    int score[N],high,i,sum=0;
    float average;
    printf("input scores:\n");
    for (i=0;i<N;i++)
    scanf("%d",score[i]);
    for (high=score[0],i=0;i<N;i++)
    {    sum+=score[i];
        if (score[i]>high)
            high=score[i];
    }
    average=float(sum/N);
    printf("average=%f    ,  highest=%d",average,high);
    return 0;
}
搜索更多相关主题的帖子: 统计 分数 
2010-08-11 17:38
灰色代言
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-08-11 20:50
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:0 
错误,没有加取地址符号“&”:
#include <stdio.h>
#define N 30
int main()
{
    int score[N],high,i,sum=0;
    float average;
    printf("input scores:\n");
    for (i=0;i<N;i++)
    scanf("%d",score[i]);//就在这儿
    for (high=score[0],i=0;i<N;i++)
    {    sum+=score[i];
        if (score[i]>high)
            high=score[i];
    }
    average=float(sum/N);
    printf("average=%f    ,  highest=%d",average,high);
    return 0;
}
其他没有什么错误

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-08-11 21:24
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
你的错误是Scanf()内没有 “&”符号

改正后还有个问题是你的平均值计算完了肯定是整数
程序代码:
#include <stdio.h>
#define N 30
int main()
{
    int score[N],high,i,sum=0;
    float average;
    printf("input scores:\n");
    for (i=0;i<N;i++)
    scanf("%d",&score[i]);         //此处记得要改
    for (high=score[0],i=0;i<N;i++)
    {    sum+=score[i];
        if (score[i]>high)
            high=score[i];
    }
    average=float(sum/N);         //这里最好也改一下  改成  average=(float)sum/N;  结果就能得到正常的小数了
    printf("average=%f    ,  highest=%d",average,high);
    return 0;
}

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-08-11 21:40
carmeloyin
Rank: 3Rank: 3
来 自:西安
等 级:论坛游侠
帖 子:161
专家分:157
注 册:2008-12-2
收藏
得分:0 
float(sum/N); 和=(float)sum/N; 的区别在哪里???
2010-08-11 22:09
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
以下是引用carmeloyin在2010-8-11 22:09:03的发言:

float(sum/N); 和=(float)sum/N; 的区别在哪里???
前者先算除法 结果为整数(因为参与运算的都是整数)最后才是强制类型转换
后者先把sum的值转换为浮点数 再做除法

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-08-11 23:29
小旬_C
Rank: 2
等 级:论坛游民
帖 子:72
专家分:33
注 册:2010-7-25
收藏
得分:0 
偷学到好多,嘿嘿

没有失败,只有暂时停止成功
2010-08-11 23:59
carmeloyin
Rank: 3Rank: 3
来 自:西安
等 级:论坛游侠
帖 子:161
专家分:157
注 册:2008-12-2
收藏
得分:0 
(float)sum/N;
是不是和
float(sum)/N;
 是一个效果?
2010-08-12 00:27
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:0 
以下是引用carmeloyin在2010-8-12 00:27:25的发言:

(float)sum/N;
是不是和
float(sum)/N;
 是一个效果?
是的啊

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-08-12 01:22
xuan228
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-11-26
收藏
得分:0 
以下是引用灰色代言在2010-8-11 20:50:05的发言:

输入数字运行后出错,提示“0x102de42e”指令引用的“0xcccccccc”。该内存不能为“written”。
这个问题是因为你scanf格式弄错了 scanf("%d",score);
scanf("%d",&score); #include <stdio.h>
 



 scanf("%d",score[i]);
这个要加&符号啊,普通变量我知道要加,数组的话我好像在书上看过可不加吧,一定要加吗?
2010-08-12 12:35
快速回复:求助——统计分数问题
数据加载中...
 
   



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

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