关于字符串数组的几个问题,求大神解答

#include <stdio.h>
#include <stdlib.h>
/***************************************************************************************
题目描述
从键盘输入一个班级的学生信息,包括学号、姓名和成绩,人数不超过10人,要求输出成绩最高者的全部信息。
输入描述
第一行先输入学生的数量,其后每三行分别输入学生的学号、姓名和成绩,即每行只接受学生的一项信息
输出描述
请按照以下格式字符串输出平均分和成绩最高的同学的信息
"The average score=%.2f\n"
"The student who has the highest score is:%s %s %d"
样例输入1:
3
1
Hangsan
86
2
Lisi
84
3
Wanger
93
样例输出1:
The average score=87.67
The student who has the highest score is:3 wanger 93
******************************************************************************/
int i=0;
void shuruxinxi(int *xuehao,char *name,double *mark,int num)//对于多个字符串的,定义、输入、输出存在疑问?
{
    for(;i<num;i++)
    {
        scanf("%d",&xuehao[i]);
        scanf("%s",&name[i]);//比如name怎么实现多个名字的存储?
        scanf("%lf",&mark[i]);
    }
}
void chulixinxi(int num,double *mark,int *xuehao,char *name)
{
    int max=0;
    double ave;
    double sum=0;
    for(;i<num;i++)
    {
        sum+=mark[i];
    }
    ave=(double)sum/num;
    for(i=0;i<num;i++)
    {
        if(mark[i]>mark[max])
            max=i;
    }
    printf("The average score=%.2f\n",ave);
    printf("The student who has the highest score is:%s %s %d",xuehao[max],name[max],mark[max]);
}
int main()
{
    int num;
    scanf("%d",&num);
    int *xuehao[20];
    char *name[num][20];
    double *mark[20];
    shuruxinxi(*xuehao,(*name)[20],*mark,num);
    chulixinxi(num,*mark,*xuehao,(*name)[20]);
    return 0;
}


Paddington
浏览 1423回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP