教你如何写出指针版判断学生成绩的c程序
1、打开啊哈c编译器
2、int scores[10]; int len; int max; int min; int total; float average; int *p; p = &scores[0];
3、len = sizeof(scores)/sizeof(scores[0]); initscores(&scores[0],len); printscores(&scores[0],len); max = getmax(&scores[0],len); min = getmin(&scores[0],len); total = gettotal(&scores[0],len); average = getaverage(&scores[0],len); printfret(max,min,total,average);
4、void initscores(int *datas,int size){ int i; for(i=0;i<size;i++像粜杵泳){ printf("请输入第%d个学生的分数:",i+1); scanf("%d", datas); if(*datas>100 ||*datas<0){ printf("*****你牛逼,哪里有这种奇怪的分数*****\n"); printf("**强制退出该程序,我的程序不给你用了**\n"); system("pause"); exit(-1); } datas++; } }
5、void printscores(int *datas,int size){ int i;for(i租涫疼迟=0;i<size;i++){ printf("第%d个学生的成绩是:%d\n",i+1,*datas++);} } int getmax(int *datas,int size) { int i; int max; max = *datas; for(i=0;i<size;i++){ if(max < *datas){ max = *datas; } datas++; } return max; }
6、int getmin猾诮沓靥(int *datas,int size) { int i; int min; min = datas[0]; for(i=0;i<si芰垄孕动ze;i++){ if(min > *datas){ min = *datas; } datas++; } return min; }float gettotal(int *scores,int size){ int i; int total=0; for(i=0;i<size;i++){ total += *scores; }scores++; return total; }
7、float getaverage(int *scores,int size){ int i; int total=0; for(i=0;i<size;i++){ total += *scores; } scores++; float average; average = (float)total/10; return average;}void printfret(int data1,int data2,int data3,float data4){ printf("最高分:%d\n 最低分:%d\n 总分:%d\n 平均分:%f\n",data1,data2,data3,data4); }
8、运行程序
9、运行程序时,输入的成绩大于100时