做C语言结构体的时候发现输出有问题
除了引用方式不同没有任何区别,一个是引用结构体内部变量,一个是引用普通变量,而且前两个都没问题,第三个莫名其妙输出
32768,用X代替就正常
这是结构体引用法
#include
#include
struct hxr
{
char xing[10];
int piao;
};
int main()
{int i,j,k,r,x=0;
struct hxr hxr1[3];
char t[100][10];
scanf("%d %s %s %s %d %s %s %s %s %s %s",&j
,&hxr1[0].xing
,&hxr1[1].xing
,&hxr1[2].xing
,&k
,&t[0],&t[1],&t[2],&t[3],&t[4],&t[5]);
for(i=0;iif(strcmp(hxr1[0].xing,t[i])==0)
{hxr1[0].piao++;
}
if(strcmp(hxr1[1].xing,t[i])==0)
{hxr1[1].piao++;
}
if(strcmp(hxr1[2].xing,t[i])==0)
{hxr1[2].piao++;
}
}
printf("请输入候选人数量(大于3个):\n");
for(i=0;iprintf("请输入第%d个候选人姓名:\n",i+1);
}
printf("请输入投票人数量(大于10个):\n");
for(i=0;iprintf("第%d个候选人姓名:%s\n",i+1,hxr1[i].xing);
}
printf("请开始投票:\n");
for(i=0;iprintf("请第%d个投票人输入候选人姓名:\n",i+1);
}
printf("第%d个候选人:%s的票数为%d\n",1,hxr1[0].xing,hxr1[0].piao);
printf("第%d个候选人:%s的票数为%d\n",2,hxr1[1].xing,hxr1[1].piao);
printf("第%d个候选人:%s的票数为%d\n",3,hxr1[2].xing,hxr1[2].piao);
return 0;
}
这是我用X替换第三个结构体的代码
#include
#include
struct hxr
{
char xing[10];
int piao;
};
int main()
{int i,j,k,r,x=0;
struct hxr hxr1[3];
char t[100][10];
scanf("%d %s %s %s %d %s %s %s %s %s %s",&j
,&hxr1[0].xing
,&hxr1[1].xing
,&hxr1[2].xing
,&k
,&t[0],&t[1],&t[2],&t[3],&t[4],&t[5]);
for(i=0;iif(strcmp(hxr1[0].xing,t[i])==0)
{hxr1[0].piao++;
}
if(strcmp(hxr1[1].xing,t[i])==0)
{hxr1[1].piao++;
}
if(strcmp(hxr1[2].xing,t[i])==0)
{x++;
}
}
printf("请输入候选人数量(大于3个):\n");
for(i=0;iprintf("请输入第%d个候选人姓名:\n",i+1);
}
printf("请输入投票人数量(大于10个):\n");
for(i=0;iprintf("第%d个候选人姓名:%s\n",i+1,hxr1[i].xing);
}
printf("请开始投票:\n");
for(i=0;iprintf("请第%d个投票人输入候选人姓名:\n",i+1);
}
printf("第%d个候选人:%s的票数为%d\n",1,hxr1[0].xing,hxr1[0].piao);
printf("第%d个候选人:%s的票数为%d\n",2,hxr1[1].xing,hxr1[1].piao);
printf("第%d个候选人:%s的票数为%d\n",3,hxr1[2].xing,x);
return 0;
}
这个就要求用结构体来完成,但是我只有前两个用结构体变量能正确输出,第三个就不行,必须用x
求解答为什么会这样
scanf("%d %s %s %s %d %s %s %s %s %s %s",&j
,hxr1[0].xing
,hxr1[1].xing
,hxr1[2].xing
,&k
,t[0],t[1],t[2],t[3],t[4],t[5]);
字符串输入不需要加&