当前位置: 代码迷 >> C语言 >> [求助]最后编译没有错误,但输完数据会报错
  详细解决方案

[求助]最后编译没有错误,但输完数据会报错

热度:125   发布时间:2006-03-21 17:44:00.0
[求助]最后编译没有错误,但输完数据会报错

//这个题目已经解了 谢谢大家帮助

#include<stdio.h>
#include<string.h>
struct material //申明一个结构体 装 姓名 ,和得票数
{
char name[10];
int ticket;
}a[4]={"qq",0,"ww",0,"ee",0,"rr",0,};
void main()
{
struct material temp;
char t[10];
int i=0,j;
do //循环接收输入的名字是和那个名字相符合,那个名字的票数就加1
{
printf("输入后选人姓名:");
scanf("%s",t);
for(i=0;i<4;i++)
{
if(strcmp(t,a[i].name)==0)
a[i].ticket++;
}
}
while(strcmp(t,"0")); //循环到输入"0"结束选票

for(i=0;i<4;i++) //输出选票人 和票数
printf("后选人姓名:%s\n后选人票数%d",a[i].name,a[i].ticket);


for(i=0;i<3;i++)
{
for(j=i+1;j<4;j++)
{
if (a[i].ticket<a[j].ticket)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
printf("当选人姓名为:%s\n以%d票当选",a[0].name,a[0].ticket);

}





[此贴子已经被作者于2006-3-21 22:11:58编辑过]

搜索更多相关的解决方案: 数据  会报  编译  

----------------解决方案--------------------------------------------------------
if(strcmp(t,a[i].name)==0)
a[i].ticket++;


应该改为if(strcmp(t,a[i].name))
a[i].ticket++;


然后再试一试

[此贴子已经被作者于2006-3-21 18:37:02编辑过]


----------------解决方案--------------------------------------------------------

//楼上的大哥没有试过 不要望下定论嘛 去掉了你说的那个 答案都是错的 现在我搞好了

[此贴子已经被作者于2006-3-21 22:10:32编辑过]


----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------
  相关解决方案