看看下面这个程序哪有错?
题目描述排队吃饭。
规定排队的人有3种,并且每种食物的制作时间都不同,一份一份做,现点现做。具体如下:
A种人:会点1碗拉面+1份烤肉+1杯饮料。
B种人:会点2碗拉面+1份烤肉。
C种人:会点3碗拉面+3份烤肉+2杯饮料。
每种食物的制作时间在输入要求中给出。
输入格式
输入包含多组测试数据。
每组第一行输入4个正整数n,la,kao,yin,n表示队伍列数,la表示拉面的制作时间,kao表示烤肉的制作时间,yin表示饮料的制作时间。所有正整数均在32位int范围内。
接下来n行,每行输入一个字符串,表示此列队伍排队情况,字符串仅由A、B、C这三个字母组成(大小写均可),每个字母对应题目描述中的某种人,字符串长度不超过100。
输出对于每组输入,输出可以最快吃上饭的那个队伍的排队时间
(下面使我编的程序,输出结果不对,请大家看看那里有错)
#include<stdio.h>
int main()
{
char p[100][100];
int sum[100];
int n,l,k,y,i,j,m,min;
int q,w,e;
printf("请输入现在队伍的列数:\n");
scanf("%d",&n);
printf("拉面的制作时间:\n");
scanf("%d",&l);
printf("烤肉的制作时间:\n");
scanf("%d",&k);
printf("饮料的制作时间:\n");
scanf("%d",&y);
q=l+k+y;
w=l*2+k;
e=l*3+k*3+y*2;
for(i=1;i<=n;i++)
{
printf("第%d对的排列情况:\n",n-i+1);
scanf("%s",&p[n-i]);
}
for(j=0;j<n;j++)
{
for(i=0;i<n;i++)
{
for(m=0,sum[j]=0;p[i][m]!='\0';m++)
if(p[i][m]== 'A'||p[i][m]=='a')
sum[j]=sum[j]+ q;
else if(p[i][m]== 'B'||p[i][m]=='b')
sum[j]=sum[j]+w;
else if(p[i][m] == 'C'||p[i][m]=='c')
sum[j]=sum[j]+e;
}
}
min=sum[0];
for(i=0;i<n;i++)
{
if(sum[i]<min)
min=sum[i];
}
printf("Output:\n");
printf("最快吃上饭的那个队伍的排队时间:%d\n",min);
return 0;
}