当前位置: 代码迷 >> C语言 >> [原创]
  详细解决方案

[原创]

热度:142   发布时间:2005-05-22 18:54:00.0
[原创]
用一30*4的二维数组存放一个班的三门考试课成绩和总成绩,输入考试成绩,然后按成绩排序后输出,对于成绩的输入和输出及排序要求分别通过函数来实现
我在线上等着
搜索更多相关的解决方案: 二维  考试成绩  总成绩  在线  

----------------解决方案--------------------------------------------------------

自己要多想想. 这个程序还可以将输入存储起来. 因为在turbo c中调试,未能给出解释.不过应该明白, input输入 output输出 calculate计算 sort排序 如此: #include<stdio.h> #include<conio.h> #define M 30 #define N 4 int a[M][N],i,j;

void input( ) { FILE *fp; fp=fopen("D:\\in.dat","w"); if(fp==NULL) { printf("Error!\n"); return; } for(i=0;i<M;i++) for(j=0;j<N-1;j++) scanf("%d",&a[i][j]); for(i=0;i<M;i++) { for(j=0;j<N-1;j++) fprintf(fp,"%d",a[i][j]); fprintf(fp,"\n"); } fclose(fp); }

void calculate( ) { for(i=0;i<M;i++) { a[i][N-1]=0; for(j=0;j<N-1;j++) a[i][N-1]+=a[i][j]; } }

void sort( ) { int k,t; for(i=0;i<M-1;i++) for(j=i+1;j<M;j++) if(a[i][N-1]<a[j][N-1]) for(k=0;k<N;k++) { t=a[i][k]; a[i][k]=a[j][k]; a[j][k]=t; } }

void output( ) { FILE *fp; fp=fopen("D:\\out.dat","w"); for(i=0;i<M;i++) { for(j=0;j<N;j++) { fprintf(fp,"%3d",a[i][j]); printf("%4d",a[i][j]); } fprintf(fp,"\n"); printf("\n"); } fclose(fp); } void main( ) { input( ); calculate( ); sort( ); output( ); getch( ); }


----------------解决方案--------------------------------------------------------
谢了,无名大哥
----------------解决方案--------------------------------------------------------
  相关解决方案