当前位置: 代码迷 >> C语言 >> 这是一个有挑战性的project
  详细解决方案

这是一个有挑战性的project

热度:289   发布时间:2006-12-07 20:02:49.0
这是一个有挑战性的project
//输入10个学生5门课的成绩,分别用函数求
//(1)每个学生平均分;
//(2)每门课的平均分.

要用C语言来做```

挺有挑战性的```

不知哪位高手能做出来```?````恭候喜讯~~~~


搜索更多相关的解决方案: project  挑战性  平均分  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]; /*定义一个结构休*/
----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2006-12-7 21:13:34的发言:
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错......


----------------解决方案--------------------------------------------------------
  相关解决方案