看板 YP93-312 關於我們 聯絡資訊
補充一下..我的原始碼 ---------------------------------------------------------------------------- #include<stdio.h> #include<iostream> #include<stdlib.h> using namespace std; #define UP 10 #define MAX 50 // 用在 struct struct_rec2 rec[MAX]; struct struct_rec { long int id; //學號 int course_no; //修課數目,0 -- 9 int score[UP]; //修課成績 }rec[MAX]; struct struct_rec2 { struct struct_rec data; double avg; //平均成績 }rec2; double ave(int no,int j[]); void sort(double store[]); int i=0; int main() { int j,k;//i=0, double store[MAX]; printf("請輸入學號,修課數目,成績:\n"); while(1) { if(scanf("%ld", &rec[i].id)==EOF) { break; } scanf("%d", &rec[i].course_no); for(j=0;j<=rec[i].course_no-1;j++) scanf("%d",&rec[i].score[j]); i++; } for(k=0;k<i;k++) { if(rec[k].course_no==0) { store[k]=0; } else { store[k]=ave(rec[k].course_no, rec[k].score); } } sort(store); return 0; } double ave(int no,int j[]) //no=修課數目,j[]=成績 { int k=0; double sum=0; for(k=0;k<no;k++) sum=sum+j[k]; rec2.avg=sum/no; return rec2.avg; } void sort(double store[]) { int k,m,notemp,p=0,*scoretemp,l=0,rank=1; long int idtemp; double temp; for(m=0;m<i;m++) for(k=m;k<i;k++) { if(store[k]>store[m]) { temp=store[m]; idtemp=rec[m].id; notemp=rec[m].course_no; store[m]=store[k]; rec[m].id=rec[k].id; rec[m].course_no=rec[k].course_no; store[k]=temp; rec[k].id=idtemp; rec[k].course_no=notemp; } } printf("\n"); printf("名次 學號 修課數目 平均成績 修課成績\n"); printf("===============================================================\n"); for(k=0;k<i;k++) { if(store[k]==store[k-1]) rank=rank; else rank=rank+1; printf("%4d %9d %6d %7.5lf %d ",rank-1, rec[k].id,rec[k].course_no,store[k]) ; printf("\n"); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.122.120
za755188:搞定.. 140.113.122.120 12/31