问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言程序改错 输入10个学生5门课的成绩,分别用函数实现以下功能

发布网友 发布时间:2022-08-20 14:32

我来回答

4个回答

热心网友 时间:2023-11-06 06:44

#include <stdio.h>
#include <stdlib.h>
float s[10][5];
int r=0,c=0;

void f2(void)
{
int i,j,cour = 0;
for(j=0;j<5;j++)
{
for(i=0;i<10;i++)
cour+=s[i][j];
printf("第%d课的平均分是%d\n",(j+1),cour/10);
cour = 0;
}
}
void f3(void)
{
int i,j,high=0;
for(j=0;j<5;j++)
{
for(i=0;i<10;i++)
{
if(s[i][j]>high)
{
high=s[i][j];
r=i+1;
c=j+1;
}
}
printf("最高分是%d,学生是%d,课程是%d\n",high,r,c);
r=0;
c = 0;
high = 0;
}
}
int main()
{
int i,j,score=0;
for(i=0;i<10;i++)
{
printf("enter NO.%d score\n",i+1);
for(j=0;j<5;j++)
{
scanf("%f",&s[i][j]);
score += s[i][j];
}
printf("第%d个学生的平均分是%d\n",(i+1),score/5);
score = 0;
}
f2();
f3();
system("PAUSE");
return 0;
}

你的问题有点多啊,你看一下吧。

注意你定义的数组类型,如果是float,记得输入的时候用%f;
函数返回值的问题,全局变量和局部变量的问题,你没用好。
还有每次计算完之后注意数据还原置0,比如score……
养成代码规范的习惯,每个for,if语句都该有个{}括号。这是好习惯。

热心网友 时间:2023-11-06 06:44

int i,j,high;
for(i=0;i<10;i++)
for(j=1;j<5;j++)
if(s[i][j]>s[0][0])
{
high=s[i][j];
r=i+1;
c=j+1;
我觉得high应该先赋初值为s[0][0]即high=s[0][0].然后将 if(s[i][j]>s[0][0])中改为s[i][j]>high.不然的话,你每次循环s[i][j]只是和s[0][0]比较大小,那么high所保存的数就不一定是是s[10][5]中最大的数。这只是我个人看法,你想下,对的话,就试下,看可以不?希望对你有帮助···追问这点我已经改过了,感谢提醒

热心网友 时间:2023-11-06 06:45

f1,f2里面,score和cour要赋初值,3个函数都没返回值,怎么能用函数返回值做printf的变量呢 ,而且第三个函数也错误了,他只能找到值比s[0][0]大的最后一个数,而不是最大的数追问请看补充,修改后如上。怎么输入计算的结果不对呢.有劳

热心网友 时间:2023-11-06 06:45

把你的程序改了下:
#include <stdio.h>
#define N 10//学生数
#define M 5//课程数

float f1(float p[][M],int n)
{
float score=0;
for(int i=0;i<M;i++)
score+=p[n][i];
return score/M;
}
float f2(float p[][M],int n)
{
float cour=0;
for(int i=0;i<N;i++)
cour+=p[i][n];
return cour/N;
}
int * f3(float p[][M],float &max)
{
int i,j,b[2];
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(p[i][j]>max)
{
max=p[i][j];
b[0]=i+1;
b[1]=j+1;
}
return b;
}
int main()
{
float stu[N][M];
int i,j,*p;
float max=0;
for(i=0;i<N;i++)
{
printf("enter NO.%d score\n",i+1);
for(j=0;j<M;j++)
scanf("%f",&stu[i][j]);
}
for(i=0;i<N;i++)
printf("第%d个学生的平均分是%.2f\n",(i+1),f1(stu,i));
for(i=0;i<M;i++)
printf("第%d课的平均分是%.2f\n",i+1,f2(stu,i));
p=f3(stu,max);
printf("学生%d的%d课程是最高分:%.2f\n",*p,*(p+1),max);
//system("PAUSE");
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
水笔在手上画画会不会被衣服搽掉下来 老人每天大便次数很多量不多也不稀,每天还会拉三四次水应经三个月了... 从大连飞机场怎么去大连经济开发区5彩城K区的大连金港大酒店 除了打 ... 请问从大连周水子国际机场到经济技术开发区怎么走最省钱? 中国古代名刀总录中国古代十大名刀 怎样把qq安装到iphone里面 苏科大什么梗 苏科大叫什么名字 lol苏科大是苏州科技大学的吗 lol苏州科技大学为什么这么厉害 优尔精医用降温贴是不是保健品? 输入10个学生5门课的成绩,分别用函数求:(1)每个学生色平均分;(2)每门课的平均分;(3)找出 C语言问题,输入10个学生5门课成绩,分别用函数实现下列功能: 输入10个学生5门课的成绩,分别用函数实现下列功能:1.计算每个学生的平均分;2.计算每门课的平均分;3. c语言 输入10个学生5门功课成绩求:1每个学生的平均分;2每门功课的平均分;3计算平均方差 汽车空调结冰解决方法是什么 汽车空调开一小时后管路结冰什么原因?以及解决方法 吾家洗砚池头树朵朵花开淡墨痕写的是什么花 朵朵花开淡墨痕写的是啥花... 新手购买基金基本流程及方法 购买基金是个什么流程? 苹果手机如何双开? 假如我是特利迦奥特曼作文? 我的梦想是当奥特曼800字作文 假如我是奥特曼的作文。 蜂花护发素效果怎么样?值得推荐吗? 有什么可以快速去除酒气的办法吗? 基金常用术语有哪些?小白一定要知道的基金术语 求大神告知:我这瓶西瓜汁昨天榨好装瓶放在冰箱里一晚上第二天就分层了成这样的,上面*下面红色絮状物 鲜榨西瓜汁为什么会分层? 自家榨的西瓜汁放到冰箱里过了一夜怎么分层了 QQ空间日志怎么置顶 C语言求助,输入10个学生5门课的成绩,求每门课的平均分,每个学生的平均分,要用到全局变量 输入10个学生5门课的成绩,分别用函数求:(1)每个学生的平均分(2)每门课的平均分(3)找出平均? 输入10个学生5门课程的成绩,分别用函数求:(1)每个学生平均分(2)每门课的平均分 电脑装过系统u盘识别不了怎么解决 我住在深圳宝安华丰科技园这边,请问这附近哪里有四大国有银行啊,工行、建行、农行、中行,有一个就行 附近四大银行 超级文本与扫描相片区别 方型脸如何化妆 AA的姿势有哪些,有图解吗。懒得复制粘贴的话给个网址也行 大地慢慢地换上了银装。(仿写造句) 腌好的咸金桔怎么吃 飞机握手什么意思 卡乐比水果麦片是不是油炸的? 这种袖子发霉了,怎样才能洗掉啊 我读初三最后一个学期.可是历史成绩差.想找好的中考的练习题做.请大家推荐一下. 每天小酌一杯桃花酿对身体有好处吗? 为我而生第一集几分几秒 为我而生在哪看免费 跑步后吃东西会发胖吗? 跑步后吃东西会长胖吗