//(1)每个学生平均分;
//(2)每门课的平均分.
要用C语言来做```
挺有挑战性的```
不知哪位高手能做出来```?````恭候喜讯~~~~
----------------解决方案--------------------------------------------------------
int i,j,sum;
stu(int a[][5],int i)
{sum=0;
for(j=0;j<5;j++)
sum+=a[i][j];
printf("student %d: %d\n",i+1,sum/5);
}
cou(int a[][5],int j)
{sum=0;
for(i=0;i<5;i++)
sum+=a[i][j];
printf("course %d: %d\n",j+1,sum/5);
}
main()
{int a[5][5]={{60,60,60,60,70},{70,70,70,80,80},
{80,80,80,50,90},{40,100,50,80,50},
{30,100,90,70,80}};
for(i=0;i<5;i++)
stu(a,i);
for(j=0;j<5;j++)
cou(a,j);
}
10个学生太多鸟.......
----------------解决方案--------------------------------------------------------
以前为这里的网友写过
fun() {
int i,ii,d[10][5],max=0,sum=0,b[2];
for(i=0;i<10;i++)
for(ii=0;ii<5;ii++)
scanf("%d",&d[i][ii]);
printf("Average Students:\n");
for(i=0;i<10;i++) {
for(ii=0;ii<5;ii++) {
if(d[i][ii]>max) max=d[i][ii];
sum+=d[i][ii];
}
printf(" NO.%d %d\n",i,sum/5);
sum=0;
}
printf("Average Subjects:\n");
for(ii=0;ii<5;ii++) {
for(i=0;i<10;i++) { sum+=d[i][ii]; if(d[i][ii]==max) {b[0]=i; b[1]=ii;} }
printf(" SB.%d %d\n",ii,sum/10);
sum=0;
}
printf("Highest: NO.%d GRADE.%d",b[0],b[1]);
}
int main(void) {
fun();
getch();
return 0;
}
----------------解决方案--------------------------------------------------------
float grade[10][5],sum[5];
for(int i=0;i<10;i++)
{
avg=0;
for(int j=0;j<5;j++)
{
avg+=grade[i][j];//每个学生的总分
sum[j]+=grade[i][j];//单科的总分,初始化为0
}
printf("%f\n",avg/5);
}
for(int j=0;j<5;j++)
{
printf("%f\n",sum[j]/10);
}
----------------解决方案--------------------------------------------------------
/*输入10个学生5门课的成绩,分别用函数求
(1)每个学生平均分;
(2)每门课的平均分*/
#include <stdio.h>
struct Stu
{
float cause[5];
}student[10]; /*定义一个结构休*/
float Eva_stu(int n) /*求每个学生的平均分*/
{
int i;
float sum=0;
for(i=0;i<5;i++)
sum=sum+student[n].cause[i];
return sum/5;
}
float Eva_cause(int n) /*(2)每门课的平均分*/
{
int i;
float sum=0;
for(i=0;i<10;i++)
sum=sum+student[i].cause[n];
return sum/10;
}
int main()
{
int i,j;
printf("Input the ten students scores of every cause:\n");
for(i=0;i<10;i++)
{
printf("[student%d]:\n",i+1);
for(j=0;j<5;j++)
{
printf(" Cause1:");
scanf("%f", &student[i].cause[j]);
}
}
printf("Eva of every students as folows:\n");
for(i=0;i<10;i++)
printf("\tstudent%d: %f\n",i+1,Eva_stu(i));
printf("Eva of every causes as folows:\n");
for(i=0;i<5;i++)
printf("\tCause%d: %f\n",i+1,Eva_cause(i));
return 0;
}
----------------解决方案--------------------------------------------------------
用数组就行,不需要用结构体
这里我弄复杂了
----------------解决方案--------------------------------------------------------
struct Stu
{
float cause[5];
float avg;
}student[10]; /*定义一个结构休*/
----------------解决方案--------------------------------------------------------
float grade[10][5],sum[5];
for(int i=0;i<10;i++)
{
avg=0;
for(int j=0;j<5;j++)
{
avg+=grade[i][j];//每个学生的总分
sum[j]+=grade[i][j];//单科的总分,初始化为0 /*感觉不对*/
}
printf("%f\n",avg/5);
}
for(int j=0;j<5;j++)
{
printf("%f\n",sum[j]/10);
}
----------------解决方案--------------------------------------------------------
怎么不对?能具体说说吗?
----------------解决方案--------------------------------------------------------
是对的
很8错......
----------------解决方案--------------------------------------------------------