鱼C论坛

 找回密码
 立即注册
查看: 3416|回复: 6

求助为何程序运行后乱码

[复制链接]
发表于 2012-7-15 21:41:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是《C程序设计》书上7.11的题目,不过我没有参考书本程序,自己编的,题目:两个班级,一个班级有30人,另一个班级有35人,求两个班的均分。 此程序编译运行都是no error no warning 不过输入30个分数和35个分数后不能正确显示结果,判断是溢出了,将float撤换为double后问题依然存在,哪位大侠能够指点高见,不甚感激!
#include<stdio.h>
int main()
{
        float average1(float array[30]);
        float average2(float array[35]);
        float aver1,aver2;
        float score1[30],score2[35];
        int i;
        printf("please input num:");
        {
                for(i=1;i<=30;i++)
                scanf("%f",&score1[i]);
        aver1=average1(score1);
        }
        {
                for(i=1;i<=35;i++)
                        scanf("%f",&score2[i]);
                aver2=average2(score2);
        }
        printf("class 1 average is %5.2f\n class 2 average is %5.2f",aver1,aver2);

}
float average1(float array[30])
{
        float sum;
        float aver;
        int i;
        sum=array[0];
        for(i=1;i<30;i++)
                sum=sum+array[i];
                aver=sum/30;
                return aver;
}

float average2(float array[35])
{
        float sum;
        float aver;
        int i;
        sum=array[0];
        for(i=1;i<30;i++)
                sum=sum+array[i];
                aver=sum/35;
                return aver;
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-16 15:49:33 | 显示全部楼层
本帖最后由 surongre 于 2012-7-16 15:51 编辑
  1.   for(i=1;i<=30;i++)
  2.                 scanf("%f",&score1[i]);
复制代码
亲,数组下标是从0开始的,改成for(i=0;i<30;++i);

QQ截图20120716155711.jpg 看到没?数组第一个元素没被赋值

2.jpg 修改后运行OK
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-16 16:08:34 | 显示全部楼层
LS 大神 用的是什么编译器哦:lol
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-16 16:33:36 | 显示全部楼层
printf("please input num:");
        {
                for(i=1;i<=30;i++)
                scanf("%f",&score1[i]);
        aver1=average1(score1);
        }
确实你再给数组赋值得时候出现了原则性错误,数组下标是从零开始得,因此score[0]你根本没赋值,是个乱码垃圾值,而且30人得班级根本没有score[30]这个元素,你反而去赋值了,程序不出问题才怪
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-17 09:24:24 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-7-19 11:06:54 | 显示全部楼层
surongre 发表于 2012-7-16 15:49
亲,数组下标是从0开始的,改成for(i=0;i

真的很谢谢你 只是一个小小的不注意 就有这么大的出错
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-7-20 10:42:29 | 显示全部楼层
小鱼苗
帮顶
顺便混个脸熟
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 04:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表