C语言编程 请问里面的中文怎么输出 还有 这题是要用数组吗

题目描述
希望小学五年级(2)班期末考试结束了,班主任王老师想知道学生考试情况。已知班上共50人参加考试,考试科目有3门(语文,数学,英语)。现王老师从中任意抽取n个人的考试成绩情况,王老师想知道这n个人3门课的最高分与平均分,麻烦你帮她一下。
要求使用函数,定义函数maxArr()求数组最大值,定义函数aveArr()求数组平均值,其余功能在main()函数中实现
double maxArr(double arr[],int n)
{
//数组arr有n个元素,函数返回数组最大值
}
double aveArr(double arr[],int n)
{
//数组arr有n个元素,函数返回数组所有元素的平均值
}

输入
第一行为一整数n,1<=n<=50;接下来n行,每行先输入学生姓名(不超过10个字符,名字内不包含空格),再依次输入三个实数表示该生的语文,数学,英语成绩[0,100]。
输出
输出有三行,每行两个数(最高分与平均分),保留一位小数;三行依次代表语文,数学,英语。
样例输入
3
张三 78 85 67
李四 89 69 90
王五 76 83 91

样例输出
89.0 81.0
85.0 79.0
91.0 82.7

提示

你好!
double maxArr(double arr[],int n) 从给出的函数形式看,必须要用数组的;

关于名字,要采用字符数组来完成存储!

你需要完整的代码吗追问

大神 需要啊 编不出来呀 有一个例子 以后的格式我就会了

追答

你好!

完整的代码,满意请采纳

#include<stdio.h>

double a[50][3];
char name[50][10];
double max[3];
double average[3]; 
int i,j,n;

double maxArr(double arr[50][3],int n)
{
    int i;
max[0]=arr[0][0];
max[1]=arr[0][1];
max[2]=arr[0][2];

    for(i=0;i<n;i++)
{
if(max[0]<arr[i][0])
max[0]=arr[i][0];
if(max[1]<arr[i][1])
max[1]=arr[i][1];
if(max[2]<arr[i][2])
max[2]=arr[i][2];
    }
}

double aveArr(double arr[50][3],int n)
{
    int i;

average[0]=0;
average[1]=0;
average[2]=0;

for(i=0;i<n;i++)
    {
average[0]=average[0]+arr[i][0];
average[1]=average[1]+arr[i][1];
average[2]=average[2]+arr[i][2];
    }
average[0]=average[0]/n;
average[1]=average[1]/n;
average[2]=average[2]/n;

}

main()
{
     printf("请输入学生的人数:\n");
     scanf("%d",&n);

     for(i=0;i<n;i++)
         scanf("%s %lf %lf %lf",&name[i],&a[i][0],&a[i][1],&a[i][2]);

      maxArr(a,n);
      aveArr(a,n);
      
      printf("%.1lf  %.1lf\n",max[0],average[0]);
      printf("%.1lf  %.1lf\n",max[1],average[1]);
      printf("%.1lf  %.1lf\n",max[2],average[2]);
return 0;
}

追问

为什么我这边报错显示两个函数没有返回值呢 我自己修改的话 答案就错了

追答

你是怎么修改的,在函数的结尾加上 return 0; 就行了

或者把函数前面的 double 换成 void 也行

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-26
中文指的是姓名吧,你定义一个字符串数组,中文就可以输入了
第2个回答  2013-11-26
中文要定义一个字符数组,这些数据用数组运算起来方便些