以下程序的功能是處理由學(xué)號(hào)和成績(jī)組成的學(xué)生記錄,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,
以下程序的功能是處理由學(xué)號(hào)和成績(jī)組成的學(xué)生記錄,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,程序的功能是把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中。注意:分?jǐn)?shù)高的學(xué)生可能不只一個(gè),函數(shù)返回分?jǐn)?shù)最高學(xué)生的人數(shù)。請(qǐng)?zhí)羁铡?include <stdio.h>#define N 16typedef struct{ char num[10]; int s;} STREC;int fun(STREC *a,STREC *b){ int i,j=0,max=a[0].s; for(i=0;i<N;i++) if(max<a[i].s)max=a[i].s; for(i=0;i<N;i++) if()b[j++]=a[i]; return j;}main(){ STREC s[N]={ {"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85}, {"GA001",91},{"GA007",72},{"GA008",64},{"GA006",87}, {"GA015",85},{"GA013",91},{"GA012",64},{"GA014",91}, {"GA011",66},{"GA017",64},{"GA018",64},{"GA016",72}}; STREC h[N]; int i,n;FILE *out; n=fun(s,h); printf("The %d highest score :\n",n); for(i=0;i<n;i++) printf("%s %4d\n",h[i].num,h[i].s); printf("\n"); out=fopen("out15.dat","w"); fprintf(out, "%d\n",n); for(i=0;i<n;i++); fprintf(out, "%4d\n",h[i].s); fclose(out);}
正確答案:max==a[i].s在本題中,程序的功能是處理由學(xué)號(hào)和成績(jī)組成的學(xué)生記錄,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,程序的功能是把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中,并返回分?jǐn)?shù)最高學(xué)生的個(gè)數(shù),即h所指數(shù)組中元素的個(gè)數(shù)。在程序中首先定義了一個(gè)大小為16的宏N,接著定義了一個(gè)學(xué)生記錄結(jié)構(gòu)體,該結(jié)構(gòu)體中有兩個(gè)成員變量,一個(gè)是字符型的數(shù)組,用來存放學(xué)生學(xué)號(hào),另一個(gè)為整型變量,用來存放學(xué)生成績(jī)。在主函數(shù)中,定義了一個(gè)結(jié)構(gòu)體數(shù)組s,并對(duì)其進(jìn)行賦初值,然后定義一個(gè)結(jié)構(gòu)體數(shù)組h,根據(jù)題目意思,這個(gè)數(shù)組用來保存分?jǐn)?shù)
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。