求救:投票系统的一个疑问
问题描述:代码可以运行,就只有 魏 的得票数显示不出来;如果输入的全部是 魏,那么则可以输出 魏 的得票数为10;但是只要有一个不是 魏,那么 魏 的得票数就显示不出来。 这是哪里错了????源代码:#include<stdio.h>
#include<string.h>
void main()
{
int i,a=0,b=0,c=0,d=0;
char z="曾";
char h="黄"; // 声明四个候选人名字
char l="李";
char w="魏";
struct person //定义结构体,保存投票
{
char x;
};
struct person name; //定义结构变量数组
printf("欢迎进入;良好公民评选投票系统:<>\n"); //欢迎语
printf("\n候选人有: 曾,黄,李,魏\n\n"); //提示语
for(i=1;i<=10;i++)
{
printf("第%d位投票,请写下支持的候选人名字: ",i); // 进行投票及保存
gets(name.x);
}
for(i=1;i<=10;i++)
{
if(strcmp(name.x,z)==0)
a++;
else if(strcmp(name.x,h) ==0 )// 投票名与候选人名字对比,一致则+1票
b++;
else if(strcmp(name.x,l) ==0 )
c++;
else if(strcmp(name.x,w) ==0 )
d++;
}
printf("\n");
printf("曾 同学得票数为:%d\n",a);
printf("黄 同学得票数为:%d\n",b); // 输出各个候选人得票数
printf("李 同学得票数为:%d\n",c);
printf("魏 同学得票数为:%d\n",d);
}
// 魏 的得票数显示不出来?,其他得票数可以正常显示
和上一个贴一样的问题,上贴没人回,估计是代码没复制好,所以重发一贴。这题纠结了好久了 原来是i= 0~9 刚学,好厉害的样子:lol: 帮顶一下,自己解决啦:lol: 本帖最后由 会飞的鱼儿wxy 于 2015-8-20 16:19 编辑
选择语句不要用else if,去掉else试试
或者把最后一个else if改成else 运行出来是对的,,,, 代码 似乎 有问题
不是 很清楚
改为 i=0;i<10;i++
似乎好了。
调试 可以看出问题
但是不懂原因,,,
页:
[1]