sizeof操作符例子(二)
1.假設每班人數最多不超過30人,具體人數由鍵盤輸入,試編程打印最高分及其學號。
要求:用一維數組和指針變量作函數參數,編程打印某班一門課成績的最高分和學號
#include <stdio.h>
#include <stdlib.h>
int x,temp=0;
int GradIsExist(int grad){/*檢驗成績是否超標0<grad<100*/
if(grad<0||grad>100){
printf("成績不正確,請重新輸入!\n");
main();/*成績不對調用主函數程序重新開始*/
}
}
int shuchu(int w,int t){/*找出成績最好的學生的學號和成績!*/
if(temp<t){
temp=t;/*選擇最高的成績賦值全局變量!*/
x=w;/*選擇最高的成績學生的學號賦值全局變量!*/
}
}
int PeopleIsExist(int i){/*檢驗人數是否超過30人*/
if(i>0&&i<30){
return 1;
}
else{
return 0;
}
}
int GetDate(int j,int *p){/*把成績和學號存儲在數組和指針(已經指定了數組的指針)*/
scanf("%d %d",&j,p);
GradIsExist(*p);
shuchu(j,*p);
return 1;
}
int main()
{
int StId[30];
int Source[30];
int *p=Source;
int i,n,m,r;
printf("請輸入學生人數!\n");
scanf("%d",&r);
if(PeopleIsExist(r)==1){/*調用函數!檢驗人數是否正確*/
printf("請輸入學號成績並用空格隔開,輸入完一人的學號成績回車繼續輸入\n");
for(i=0;i<r;i++){
int *q;
q=p+r;
p++;
if(p>q){/*防止指針越界*/
break;
}
else{
GetDate(StId[i],p);/*調用函數,記錄數據!*/
}
}
printf("成績最高的學號為:%d他的成績:%d",x,temp);
}
else{
printf("學生人數超過30人!\n");
main();/*人數超過30重新調用主函數,程序從頭開始!*/
}
return 0;
}
sizeof操作符例子(二)