2008-06-09 12:07#include<stdio.h>#define ADD1 stu[i].num,stu[i].mat,stu[i].ENG,stu[i].com,stu[i].aver,stu[i].total#define ADD &stu[i].num,&stu[i].mat,&stu[i].ENG,&stu[i].comstruct student{ int num; int mat; int ENG; int com; float aver; float total;}stu[10],stu1[10];main(){ float sum(int x,int y,int z); int i; for(i=0;i<10;i++) scanf(%d%d%d%d,ADD); for(i=0;i<10;i++) { stu[i].total=sum(stu[i].mat,stu[i].ENG,stu[i].com); stu[i].aver=stu[i].total/3; } void take_turn_print(struct student stu1) ; take_turn_print(stu);}float sum(int x,int y,int z){ float i; i=(float)(x+y+z); return(i);}void take_turn_print(struct student stu1){ void change(int x,int y); void change1(float x,float y); int i,j; for(j=0;j<9;j++) { for(i=0;i<9-j;i++) { if(stu1[i].aver>stu1[i+1].aver) { change(stu1[i].num,stu1[i+1],num); change(stu1[i].mat,stu1[i+1],mat); change(stu1[i].ENG,stu1[i+1],ENG); change(stu1[i].com,stu1[i+1],com); change1(stu1[i].aver,stu1[i+1],aver); change1(stu1[i].total,stu1[i+1],total); } } } for(i=10;i>0;i--) printf(%d %d %d %d %3.2f %3.2f,ADD1);}void change(int x,int y){ int i; int *p1,*p2; p1=&x;p2=&y; i=*p1; *p1=*p2; *p2=i;}void change1(float x,float y){ float i; float *p1,*p2; p1=&x;p2=&y; i=*p1; *p1=*p2; *p2=i;}#include<stdio.h>补充1 2008-05-31 11:14#include<stdio.h> struct student{ int num; int mat; int ENG; int com; float aver; float total;}stu[10];void main(){ int i; void take_turn_print(struct student stu1[10]) ; float sum(int x,int y,int z); for(i=0;i<10;i++) scanf(%d%d%d%d,&stu[i].num,&stu[i].mat,&stu[i].ENG,&stu[i].com); for(i=0;i<10;i++) { stu[i].total=sum(stu[i].mat,stu[i].ENG,stu[i].com); stu[i].aver=stu[i].total/3; } take_turn_print(stu);}void take_turn_print(struct student stu1[10]){ void change(int *x,int *y); void change1(float *x,float *y); int i,j; for(j=0;j<9;j++) { for(i=0;i<9-j;i++) { if(stu1[i].aver<stu1[i+1].aver) { change(&stu1[i].num,&stu1[i+1].num); change(&stu1[i].mat,&stu1[i+1].mat); change(&stu1[i].ENG,&stu1[i+1].ENG); change(&stu1[i].com,&stu1[i+1].com); change1(&stu1[i].aver,&stu1[i+1].aver); change1(&stu1[i].total,&stu1[i+1].total); } } } for(i=0;i<10;i++) printf(NO.%d %d %d %d %d %3.2f %3.2f\n,1+i,stu[i].num,stu[i].mat,stu[i].ENG,stu[i].com,stu[i].aver,stu[i].total); }void change(int *x,int *y){ int *i; [i]=*x; *x=*y; *y=[i]; }void change1(float *x,float *y){ float *i; [i]=*x; *x=*y; *y=[i]; }float sum(int x,int y,int z){ float i; i=(float)(x+y+z); return(i);}经过一天调试 出来了 帮同学做的从没做过这么麻烦的东西
叫你不好好学习
网友评论
