在C语言中,输入3个学生的姓名和成绩,统计高于平均分的人数并显示其姓名?

来源:百度知道 编辑:UC知道 时间:2024/05/09 18:48:47
main()
{
int i,j,x=0,sum=0;
float ave;
char c,a[3][2]={{'a','60'},{'b','40'},{'c','67'}};/* c 是准备存放大于平均值的姓名 */
for(i=0;i<3;i++)
for(j=0;j<2;j++)
{
sum+=a[i][1];
ave=sum/3.0;
}
if(a[i][1]>ave)
{ x++;
c=a[i][0];
}
printf("%c,%d\n",c,x);
}
麻烦各位高手能看一下本程序错在什么地方?
谢谢

if(a[i][1]>ave)
{ x++;
c=a[i][0];
}
printf("%c,%d\n",c,x);
在 执行 这个 的时候 i已经溢出了。你 给再加一个for循环试试
for(i=0,i<3,i++){
if(a[i][1]>ave)
{ x++;
c=a[i][0];
}
}
printf("%c,%d\n",c,x);

你 for(i=0;i<3;i++)
for(j=0;j<2;j++)
这个 只用一个 for 就行了吧 下面是 我 根据 你程序改的 你自己 看看 是不是你要的 然后 再看看自己的程序吧

#include <stdio.h>
main()
{
int i,j,x=0,sum=0;
float ave;
char c,a[3][2]={{'a','60'},{'b','40'},{'c','67'}};/* c 是准备存放大于平均值的姓名 */
for(i=0;i<3;i++)

{
sum+=a[i][1];
ave=sum/3.0;
}
for(i=0;i<3;i++)
{
if(a[i][1]>ave)
{ x++;
c=a[i][0];
printf("%c,%d\n",c,x);
}
}
}

你的算法思路不对,不应该用嵌套循环,嵌套循环有可能可以实现,但算法会非常复杂

建议使用多次单层存环
第一次单层循环计算数量和总成绩