标题:编译函数,有runtime error怎么办、
只看楼主
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
结帖率:75%
已结贴  问题点数:10 回复次数:3 
编译函数,有runtime error怎么办、
#include<stdio.h>
float score[10][5];
float stu[10];
float ave[5];
void student(void);
void average(void);
int highest(void);
main()
{
    int i,j,n;
    for(i=0;i<10;i++)
    {
        for(j=0;j<5;j++)
            scanf("%f",&score[i][j]);
    }
printf("Part 1: the averages of every student\n");
student();
for(i=0;i<10;i++)
printf("%f\n",stu[i]);
   
printf("Part 2: the averages of every course score\n");
average();
for(j=0;j<5;j++)
printf("%f\n",ave[j]);

printf("Part 3: a student  and  course scores of the student whose average is the highest\n");
n=highest();
printf("%d\n",n);
for(j=0;j<5;j++)
printf("%f\n",score[n][j]);

return 0;
}


void student(void)
{float s;
int i,j;
for(i=0;i<10;i++)
{
    for(j=0,s=0;j<5;j++)
s+=score[i][j];
stu[i]=s/5.0;
}
    }
void average(void)
{float s;
int i,j;
for(j=0;j<5;j++)
{
    for(i=0,s=0;i<10;i++)
s+=score[i][j];
ave[j]=s/10.0;
}
}
int highest(void)
{
    int i,k;
    float high;
high=ave[0];
for(i=0;i<10;i++)
{
    if(high<ave[i])
    {high=ave[i];
    k=i;}
}
return k;
}
搜索更多相关主题的帖子: averages highest include course 
2013-12-04 18:45
vivalatom
Rank: 2
等 级:论坛游民
帖 子:23
专家分:39
注 册:2013-12-2
得分:10 
优化一下结构,运行时间太长了
2013-12-04 18:53
yenga
Rank: 1
等 级:新手上路
帖 子:39
专家分:7
注 册:2013-11-25
得分:0 
回复 2楼 vivalatom
就是想问怎么优化的。。
2013-12-04 18:58
vivalatom
Rank: 2
等 级:论坛游民
帖 子:23
专家分:39
注 册:2013-12-2
得分:0 
太长了。。。随便看了一下就有两个,就是你那两个求平均值的函数,student()和average(),都是求好值之后就储存,之后回到主函数再打印,就有要一次循环,你只要求出平均值之后直接打印一下就省了很多时间,甚至连两个数组都可以省了。。。先就这个吧,改完应该能过了
2013-12-04 19:28



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




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

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