1 条题解
-
0
C :
#include<stdio.h> #include<string.h> #define max_len 10 #define stu_num 30 #define course_num 6 typedef struct student { long num; char name[max_len]; float score[course_num]; float sum; float aver; }STU; void ReadScore(STU stu[],int n,int m) { int i,j; char ch; for(i=0;i<n;i++) { scanf("%ld",&stu[i].num); scanf("%s",stu[i].name); for(j=0;j<m;j++) { scanf("%f",&stu[i].score[j]); } } } void aver_sum(STU stu[],int n,int m) { int i,j; for(i=0;i<n;i++) { stu[i].sum=0; for(j=0;j<m;j++) {stu[i].sum=stu[i].sum+stu[i].score[j]; } stu[i].aver=stu[i].sum/m; } } void SwapFloat (float *x,float *y) { float temp; temp=*x; *x=*y; *y=temp; } void SwapLong (long *x,long *y) { long temp; temp=*x; *x=*y; *y=temp; } void SwapChar(char x[],char y []) { char temp[max_len]; strcpy(temp,x); strcpy (x,y); strcpy(y,temp); } void printscore (STU stu[],int n,int m ) { int i; for(i=0;i<n;i++) { printf("%ld %s %.0f %.0f\n",stu[i].num,stu[i].name,stu[i].sum,stu[i].aver); } } void sortnum (STU stu[],int n,int m) { int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) { if(stu[j].num<stu[k].num)k=j; } if(k!=i) { for(t=0;t<m;t++) { SwapFloat(&stu[k].score[t],&stu[i].score[t]); } SwapFloat (&stu[k].sum,&stu[i].sum); SwapFloat (&stu[k].aver,&stu[i].aver); SwapLong (&stu[k].num,&stu[i].num); SwapChar (stu[k].name,stu[i].name); } } } int main() { int n=0,m=0; STU stu[stu_num]; scanf("%d",&n); scanf("%d",&m); ReadScore(stu,n,m); aver_sum(stu,n,m); sortnum(stu,n,m); printscore(stu,n,m); return 0; }
- 1
信息
- ID
- 3025
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者