本周只进行一个程序,以前的一个程序。
自定义如下函数,输入n(n<46)个学生的姓名和成绩,顺序输出这n个学生的姓名和成绩,并输出最高成绩的姓名和成绩。预习struct结构体,思考如何改进这一程序。
//为count个学生输入姓名和成绩
void getStudentsInfo(char* names[], int scores[] , int count);
//依次打印count个学生的姓名和成绩
void printStudentsInfo(char* names[], int scores[],int count);
//获取最高成绩的学生的index
int getIndexOfMaxScore(int scores[],int count);
告诉我是编译器问题`3`
#include "stdio.h"
#define n 45
void getStudentsInfo(char names[][20], int scores[] , int count);
void printStudentsInfo(char names[][20], int scores[],int count);
int getIndexOfMaxScore(int scores[],int count);
void main()
{ char names[n][20];
int scores[n];
int answer;
getStudentsInfo(names,scores,n);
printStudentsInfo(names,scores,n);
answer=getIndexOfMaxScore(scores,n);
printf("the best score is %d %s",scores[answer],names[answer][20]);
}
void getStudentsInfo(char names[][20], int scores[] , int count)
{ int i;
for(i=0;i<count;i++)
{ scanf("%s ",&names[i]);
scanf("%d",&scores[i]);}}
void printStudentsInfo(char names[][20], int scores[],int count)
{ int i;
for(i=0;i<count;i++)
printf("%s %d",names[i],scores[i]);}
int getIndexOfMaxScore(int scores[],int count)
{ int max=0;
int i,a;
for(i=0;i<count;i++)
if(scores[i]>max)
{ max=scores[i];
a=i;}
return a;}