泥塑课?程序不知道错在哪里,请各位大佬帮忙看看
小米老师在不同的学期可能会带一个班或者同时带多个班,因此输入数据可能有一组或者多组。每组输入数据的第一行为一个整数 n,表示了这个班的小朋友数,之后 n 行每行包括了由空格分隔的三个整数和一个字符串,那个字符串表示了小朋友的名字,前面三个整数则是这个学生手里橡皮泥块的长、宽、高数据。按照幼儿园的规定,每个班最多有 9 个小朋友,最少也要有 2 个小朋友,每个小朋友在学籍系统中的名称不超过 8 个字符长。当出现一个班级的小朋友数为 −1 时,表示没有更多的班级了。输出行数与小米老师带的班级数相同,形式为X took clay from Y样例输入:
4
2 4 10 Cam
4 3 7 Sam
8 11 1 Graham
6 2 7 Pam
-1
样例输出:Graham took clay from Cam.
#include <stdio.h>
#include <stdlib.h>
int main()
{ //泥塑,小朋友数目为n,也是行数,长宽高用a,b,c表示,字符串用i表示
//小朋友数为2到9,字符串不超过8.输入体积为V,V=a*b*c,有一个判断,不等的两个提出来比较,大的为x,小的为y
int n,a[9],b[9],c[9],V[9],j,sum,av; //输出的格式X took clay from Y
char i[8],X,Y;
while(1)
{
scanf("%d",&n);
if(n!=-1)
{
for(j=0;j<n;j++) //控制行数,为n行
{
scanf("%d%d%d%s",&a[j],&b[j],&c[j],&i[j]); //输入长宽高和名字
V[j]=a[j]*b[j]*c[j];
sum=sum+V[j];
}
av=sum/n; //算出平均数,作为判断
for(j=n;j>=0;j--) //判断其中谁少了,多了,少了的给Y,多了的给X
{
//如果是相等的就说明正常,跳过继续
if(V[j]<=av)
{
Y=i[j];
}
else
{
if(V[j]>=av)
{
X=i[j];
}
}
}
printf("%s took clay \n",X);
printf("from %s\n",Y); //输出的格式X took clay from Y
}
else
printf("\n");break;
}
return 0;
}
就是在输出时出现问题,是不是Y=i【j】有问题?
求大佬们解惑
[此贴子已经被作者于2017-10-19 09:14编辑过]