这个题目,C语言怎么编程?我编写了部分~大神赐教
#include<stdio.h>#defineI5#defineJ3voidjunfen(intsz[I][J],intavg[I]){inti,j;for(i=0;i...
#include <stdio.h>
#define I 5
#define J 3
void junfen(int sz[I][J],int avg[I])
{
int i,j;
for(i=0;i<I;i++){
for(j=0;j<J;j++) {
avg[i]+=sz[i][j];
j++;
}
}
}
int main(void)
{
int sz[I][J];
int avg[I]={0};
int i,j;
for (i=0;i<I;i++) {
printf("学生%d:\n",i+1);
for (j=0;j<J;j++) {
printf("语文:"); scanf("%d",&sz[i][j]); j++;
printf("数学:"); scanf("%d",&sz[i][j]); j++;
printf("英语:"); scanf("%d",&sz[i][j]);
}
putchar('\n');
}
junfen(sz[I][J],avg[I]);
for (i=0;i<I;i++) printf("%d\n",avg[i]/3);
return (0);}
问题平均分这样算不出来,最高分的我也不会用二维数组整出来.. 展开
#define I 5
#define J 3
void junfen(int sz[I][J],int avg[I])
{
int i,j;
for(i=0;i<I;i++){
for(j=0;j<J;j++) {
avg[i]+=sz[i][j];
j++;
}
}
}
int main(void)
{
int sz[I][J];
int avg[I]={0};
int i,j;
for (i=0;i<I;i++) {
printf("学生%d:\n",i+1);
for (j=0;j<J;j++) {
printf("语文:"); scanf("%d",&sz[i][j]); j++;
printf("数学:"); scanf("%d",&sz[i][j]); j++;
printf("英语:"); scanf("%d",&sz[i][j]);
}
putchar('\n');
}
junfen(sz[I][J],avg[I]);
for (i=0;i<I;i++) printf("%d\n",avg[i]/3);
return (0);}
问题平均分这样算不出来,最高分的我也不会用二维数组整出来.. 展开
2014-04-15 · 知道合伙人数码行家
stlily2008
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:627
获赞数:2806
大学本科毕业于桂林电子工业学院,硕士毕业于广东工业大学。在电力建设行业从事计算机管理及施工管理10多年
向TA提问 私信TA
关注
展开全部
帮你修改了一下代码,实现你的题目的要求,没有使用函数。
#include <stdio.h>
#define I 5
#define J 3
int main(void)
{
int sz[I][J];
int avg[I]={0};
int i,j;
int intMax[J]={0}; // 新增加定义:最高分
float fPinJun[I]={0}; // 新增加定义:平均分
printf("请输入 %d 个学生的 %d 科成绩:\n",I,J);
for (i=0;i<I;i++)
{
printf("学生%d:\n",i+1);
for (j=0;j<J;j++)
{
printf("语文:");
scanf("%d",&sz[i][j]);
if (intMax[j] < sz[i][j])
intMax[j]=sz[i][j]; // 语文最高分
fPinJun[i] = sz[i][j]; // 计算平均分用
j++;
printf("数学:");
scanf("%d",&sz[i][j]);
if (intMax[j] < sz[i][j])
intMax[j]=sz[i][j]; // 数学最高分
fPinJun[i] += sz[i][j]; // 计算平均分用
j++;
printf("英语:");
scanf("%d",&sz[i][j]);
if (intMax[j] < sz[i][j])
intMax[j]=sz[i][j]; // 英语最高分
fPinJun[i] += sz[i][j]; // 计算平均分用
}
fPinJun[i] = fPinJun[i]/J;
putchar('\n');
}
printf("语文、数学、英语的最高分分别是:\n");
for (j=0;j<J;j++)
printf("%d\n", intMax[j]);
printf("\n每个学生的平均分是:\n");
for (i=0;i<I;i++)
printf("学生%d的平均分是:%.2f\n",i+1,fPinJun[i]);
return (0);
}
展开全部
算平均分时,最后为什么加了一句j++,不应该有的
最高分可以在定义一个数组max[J]
for(j = 0; j < J; j++) {
max [j] = sz[0][j];
for(i = 1; i < I; i ++) {
if(max[j] < sz[i][j])
max[j] = sz[i][j];
}
}
max[0],max[1],max[2]分别是语文、数学和英语成绩的最高分
最高分可以在定义一个数组max[J]
for(j = 0; j < J; j++) {
max [j] = sz[0][j];
for(i = 1; i < I; i ++) {
if(max[j] < sz[i][j])
max[j] = sz[i][j];
}
}
max[0],max[1],max[2]分别是语文、数学和英语成绩的最高分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#define I 5
#define J 3
void junfen(int sz[][J],int avg[])
{
int i,j;
for(i=0;i<I;i++)
{
for(j=0;j<J;j++)
{
avg[i]+=sz[i][j];
}
}
}
void max(int sz[][J],int top[])
{
int i,j;
for(j=0;j<J;j++)
{
top[j] = 0;
for(i=0;i<I;i++)
{
if(sz[i][j] > top[j])
{
top[j]=sz[i][j];
}
}
}
}
int main(void)
{
int sz[I][J];
int avg[I]={0},top[I] = {0};
int i,j;
for (i=0;i<I;i++)
{
printf("学生%d:\n",i+1);
j = 0;
printf("语文:"); scanf("%d",&sz[i][j]);
++j;
printf("数学:"); scanf("%d",&sz[i][j]);
++j;
printf("英语:"); scanf("%d",&sz[i][j]);
putchar('\n');
}
junfen(sz,avg);
for (i=0;i<I;i++)
printf("%d ",avg[i]/3);
printf("\n");
max(sz,top);
for(j=0;j<J;j++)
{
printf("%d ",top[j]);
}
return (0);
}
#define I 5
#define J 3
void junfen(int sz[][J],int avg[])
{
int i,j;
for(i=0;i<I;i++)
{
for(j=0;j<J;j++)
{
avg[i]+=sz[i][j];
}
}
}
void max(int sz[][J],int top[])
{
int i,j;
for(j=0;j<J;j++)
{
top[j] = 0;
for(i=0;i<I;i++)
{
if(sz[i][j] > top[j])
{
top[j]=sz[i][j];
}
}
}
}
int main(void)
{
int sz[I][J];
int avg[I]={0},top[I] = {0};
int i,j;
for (i=0;i<I;i++)
{
printf("学生%d:\n",i+1);
j = 0;
printf("语文:"); scanf("%d",&sz[i][j]);
++j;
printf("数学:"); scanf("%d",&sz[i][j]);
++j;
printf("英语:"); scanf("%d",&sz[i][j]);
putchar('\n');
}
junfen(sz,avg);
for (i=0;i<I;i++)
printf("%d ",avg[i]/3);
printf("\n");
max(sz,top);
for(j=0;j<J;j++)
{
printf("%d ",top[j]);
}
return (0);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询