可有老师帮我看看?判断条件应该为真,可不进入支代码?
/************************//*结构体数组做个计票工具*/
/************************/
#include <stdio.h>
struct vote
{
char *name;
int sum;
}candi = { {"xiao", 0}, {"zhang", 0}, {"cheng", 0} };
void main()
{
int i;
char str;
printf("input the name of vote. \"OK\" for finish: \n");
while(1)
{
gets(str);
if(str == "xiao") //str="xiao",可程序不进入执行语句?
{
candi.sum ++;
printf("\n");
}
else if ( str == "zhang")
{
candi.sum ++;
printf("\n");
}
else if (str == "cheng")
{
candi.sum ++;
printf("\n");
}
else if ( str == "OK")
{
break;
}
else
{
printf("input error!\n");
}
}
for(i=0; i<3; i++)
{
printf("%s get %d vote.\n", candi.name, candi.sum);
}
}
以下是调试截图
http://wx1.sinaimg.cn/mw690/006afBvMgy1fybupggnznj30o40eo74y.jpg
以下是运行截图
http://wx4.sinaimg.cn/mw690/006afBvMgy1fybupfy0x2j309p03kmwy.jpg gets(str) 是不是会接收\n换行符?
你试一下 if((str == "xiao\n") 呢。 字符串比较不能直接用 ==,要用函数strcmp(),改成 if (strcmp(str, "xiao") == 0),加个头文件#include <string.h>
页:
[1]