C语言利用指针编写函数,输入3个学生2门课成绩,计算每个学生的平均分和每门课的平均分。

如题所述

给你一个简单的程序。 希望能看的懂。

#include "stdafx.h"
#include "stdio.h"

int main(int argc, char* argv[])
{
int a,b,c;
printf("a学生成绩是:");
int a1,a2;
scanf("%f,%f",&a1, &a2);
printf ("b学生成绩是:");
int b1,b2;
scanf ("%d,%d",&b1,&b2);
int c1,c2;
printf("c学生的成绩是:");
scanf("%d,%d",&c1,&c2);
a=(a1+a2)/2;
b=(b1+b2)/2;
c=(c1+c2)/2;
printf("a学生的平均成绩是:\n");
printf("%d\n",a);
printf("b学生的平均成绩是:\n");
printf("%d\n",b);
printf("c学生的平均成绩是:\n");
printf("%d\n",c);

int a_c,a_c1;
a_c=(a1+b1+c1)/3;
a_c1=(a2+b2+c2)/3;
printf("每门课的平均成绩是:\n");
printf("%d,%d\n",a_c,a_c1);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-24
#include "stdio.h"
#include "conio.h"
struct student
{
char num[6];
char name[8];
int score[3];
float avr;
}stu[5];
main()
{
int i,j,sum;
FILE *fp;
/*input*/
for(i=0;i<5;i++)
{
printf("\n please input No. %d score:\n",i);
printf("stuNo:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
for(j=0;j<3;j++)
{
printf("score %d.",j+1);
scanf("%d",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].avr=sum/3.0;
}
fp=fopen("stud","w");
for(i=0;i<5;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
getch();
}本回答被提问者采纳
第2个回答  2009-05-26
这个...你懂数组指针么?
申请一个2维数组
a[3][2]
然后申请个数组指针 *P[3]
指向a
然后 p[0]+0 就等于 a[0][0] p[0]+1就等于 a[0][1]
(p[0]+p[0]+1)/2 就是第一个人的平均分了....
后面同理
相似回答