c语言-为什么输出是这样,哪里错了,该怎么改呢?求大牛指教

问题描述

为什么输出是这样,哪里错了,该怎么改呢?求大牛指教

#include
#define N 3 /*学生人数*/
#define Course 3 /*课程数目*/
void read_score(int num[],int cours[][Course] );//函数作用:向两个数组输入学号和三门学科的成绩
void aver_stuscore(int cours[][Course],int sum[],float aver[]);//算出学生的总分以及平均分
void aver_courscore(int cours[][Course],int sum[],float aver[]);//算出课程的总分以及平均分
void print_score(int num[],int cours[][Course],int sumS[],int sumC[],float averS[],float averC[] );//函数作用:按照格式输出每个学生的成绩,总分,平均分。
int main()
{
int i,j;
int num[N],sumS[N],sumC[Course];
float averS[N],averC[Course];
int cours[N][Course];
read_score(num,cours);
aver_stuscore( cours ,sumS, averS);
aver_courscore( cours, sumC, averC);//算出课程的总分以及平均分
print_score(num,cours, sumS, sumC, averS, averC );//函数作用:按照格式输出每个学生的成绩,总分,平均分。

return 0;

}

void read_score(int num[],int cours[][Course] )//函数作用:向两个数组输入学号和三门学科的成绩
{
int i , j;
for(i=0;i<N;i++)
{
printf("Please enter the No.%d student's number and grade as C M Et",i+1);
scanf("%d",&num[i]);
for(j=0;j<Course;j++)
{
scanf("%d",&cours[i][j]);
}
}
}

void aver_stuscore(int cours[][Course],int sum[],float aver[])//算出学生的总分以及平均分
{
int i,j;
for(i=0;i<N;i++)
{
sum[i]=0;
for(j=0;j<Course;j++)
{
sum[i]=sum[i]+cours[i][j];
}
aver[i]=(float)sum[i]/Course;
}

}
void aver_courscore(int cours[][Course],int sum[],float aver[])//算出课程的总分以及平均分
{
int i ,j ;
for(j=0;j<Course;j++)
{
sum[i]=0;
for(i=0;i<N;i++)
{
sum[i]=sum[i]+cours[i][j];
}
aver[i]=(float)sum[i]/Course;
}
}

void print_score(int num[],int cours[][Course],int sumS[],int sumC[],float averS[],float averC[] )//函数作用:按照格式输出每个学生的成绩,总分,平均分。
{
int i ,j;
printf("IDt语文t数学t英语t总分t平均分n");
for(i=0;i<N;i++)
{
printf("%dt",num[i]);
for(j=0;j<Course;j++)
{
printf("%dt",cours[i][j]);
}
printf("%dt%.2f",sumS[i],averS[i]);
printf("n");
}
printf("课程总分t");

for(i=0;i<Course;i++)
{
    printf("%dt",sumC[i]);

}
printf("n");
printf("课程平均分t");
for(i=0;i<Course;i++)
{
    printf("%.2ft",averC[i]);
}

}

解决方案

 sum[i]=0;
for(j=0;j<Course;j++)
{
sum[i]=sum[i]+cours[i][j];
}
->
sum[j]=0;
for(j=0;j<Course;j++)
{
sum[j]=sum[j]+cours[i][j];
}
时间: 2024-08-03 04:23:18

c语言-为什么输出是这样,哪里错了,该怎么改呢?求大牛指教的相关文章

数据结构 二叉树-我写的树的括号表示法哪错了,怎么改,求大神解答

问题描述 我写的树的括号表示法哪错了,怎么改,求大神解答 #include #include #include using namespace std; struct treenode { char data; treenode *firstchild; treenode *nextsibling; }; treenode * creat_tree(char*&a) { if((*a)==',') { a++; } if((*a)=='') return NULL; if((*a)==')')

spark 计算输出的 rowmatrix 矩阵的存储不正常,求大牛指导

问题描述 在集群上计算会遇到一个问题,进行矩阵的奇异值分解时"M.computeSVD(5000,true,1.0E-9d)"时,A=U*s*V分解的s向量存储,V矩阵存储正常,但是分解的左奇异矩阵U默认为rowmatrix矩阵,这个矩阵存储的(存储代码:U.rows.saveAsTextFile("hdfs://s2:9000/outsvd/big_UUT1"))时候,发现存储结果为为好几部分eg:part-00000.part-00001.part-00002.

指针-C语言,请问这个逆序输出的程序哪里错了

问题描述 C语言,请问这个逆序输出的程序哪里错了 #include int main(void) { char ar[] = "abc"; char ar1[4] = {0}; //设置指针p指向数组ar的首地址 char *p = ar; //使指针p指向数组ar的最后一个有效字符 for (; *p++ != '';) ; p--; //获取数组ar的长度 int i,j; i = strlen(ar); //将逆序排列存储到数组ar1中 for (j = 0; j < i;

c-C语言输出数字团,代码为什么出现Segmentation fault,求解释并纠错??

问题描述 C语言输出数字团,代码为什么出现Segmentation fault,求解释并纠错?? //题目:输出字符串里数字团,以及个数.比如89cy129 //就输出89,129,一共2个数. 代码在这个百度知道的问题上:well,看来百度知道上面没有人会做? 跪谢!!! 源代码: include int main() { int a[80],i=0,*pa,an=0; char str[80],*pstr=str; void getnum(char pstr); gets(str); get

C语言图案输出诡异的问题,这两个代码输出的图案有什么不同??

问题描述 C语言图案输出诡异的问题,这两个代码输出的图案有什么不同?? #include<stdio.h> void main() {int i,j,k; for(i=1;i<=4;i++) {for(j=1;j<=4-i;j++) printf(" "); for(k=1;k<=2*i-1;k++) printf("*"); printf(" ");} for(i=1;i<=3;i++) {for(j=1;j

c语言程序输出异常,请大家来帮忙~

问题描述 c语言程序输出异常,请大家来帮忙~ 这里是用遗传算法,C语言编的解决工序排序的问题. 每条工序时间不同,工人们参加每条工序的成本也不同,工人必须呆到自己负责的工序结束了才能走,最终想要得到使成本最低的工序排序. 现在问题出在输出在文件的结果很不稳定,有时是0,有时是很小的负数,有时就是空的,但问题本身成本一定是正数的~ ps:以下是成本的计算部分,即适应度的计算,麻烦大家看看指出问题所在,虚心求教了~ void fenpei(FILE*ffp) {int i,j,k,l;_ for(i

设计-c语言 一个输出出现次数最多的字母的程序

问题描述 c语言 一个输出出现次数最多的字母的程序 字母不区分大小写 输出格式:出现的次数 该字母 如果有复数个出现次数最多的字母,就按字母排列顺序输出 例 输入 One Two Buckle My Shoe 输出 3 eo 输入 Once upon a time,there lived a manwhose name wos Lip van Winkle. 输出 8 e 使用以下代码雏形 #include<stdio.h> int main(void) { int i,max=0; char

c语言 char输出问题,实在找不出来问题

问题描述 c语言 char输出问题,实在找不出来问题 #include #define N 3 struct Student{ int number; int age; char sex; char name[20]; float english; float math; float computer; float aver; }; void main(){ struct Student stu[N]; struct Student *p; p=stu; void input(struct St

c语言-C语言如何输出一个变量的地址

问题描述 C语言如何输出一个变量的地址 scanf("%d",&a); 假如我输入"10",那这个"10"的地址怎么求,怎么输出来呢? 解决方案 你要好好看看指针的定义和运用. 你可以定义一个整型指针 int p: 然后定义一个整型变量 int a: p的值是一个整型变量的地址 &是取地址操作符 **p = &a:* 这样,指针变量p保存的就是整型变量a的地址了 你要引用整型变量a,可以直接使用变量本身a,也可以通过指针间