纠结2天的问题!
#include <stdio.h>#include <string.h>
int main()
{
char *a,*b,*c,*d;
int i,f,g,h,j,y,u,p,o;
int bo;
char name;
f = 0;
g = 0;
h = 0;
j = 0;
y = 0;
u = 0;
p = 0;
o = 0;
a = "小甲鱼";
b = "苍井空";
c = "松岛枫";
d = "莫丁丁";
printf("欢迎进入良好公民评选投票系统:<>\n");
printf("候选人有:小甲鱼,仓井空,松岛枫,莫丁丁\n");
for(i = 1; i <= 10; i++)
{
printf("第%d位投票,请写下支持的候选人的名字: ",i);
gets(name);
}
printf("\n\n");
for(bo = 1; bo <= i; bo++) //这里为什么只判断gets输入的最后一个丫!!! 要用什么才能解决??????
{
if(strcmp(name,a)==0)
{
f = y+1;
}
if(strcmp(name,b)==0)
{
g = u+1;
}
if(strcmp(name,c)==0)
{
h = p+1;
}
if(strcmp(name,d)==0)
{
j = o+1;
}
}
printf("%s的得票为: %d\n", a, f);
printf("%s的得票为: %d\n", b, g);
printf("%s的得票为: %d\n", c, h);
printf("%s的得票为: %d\n", d, j);
if(f>=g && f>=h && f>=j )
{
printf("本次投票活动的胜利者是:%s\n",a);
}
if(g>f && g>h && g>j)
{
printf("本次投票活动的胜利者是%s\n",b);
}
if(h>f && h>g && h>j)
{
printf("本次投票活动的胜利者是:%s\n",c);
}
if(j>f && j>g && j>h)
{
printf("本次投票活动的胜利者是:%s\n",d);
}
system("pause");
return 0;
}
帮忙解决下,O(∩_∩)O谢谢!!
两个循环不应该分开哦,我帮您改了一下,顺便简化了一下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *a,*b,*c,*d;
int i,f,g,h,j;
char name;
f = 0;
g = 0;
h = 0;
j = 0;
a = "小甲鱼";
b = "苍井空";
c = "松岛枫";
d = "莫丁丁";
printf("欢迎进入良好公民评选投票系统:<>\n");
printf("候选人有:小甲鱼,仓井空,松岛枫,莫丁丁\n");
for(i = 1; i <= 10; i++)
{
printf("第%d位投票,请写下支持的候选人的名字: ",i);
gets(name);
if(strcmp(name,a)==0)
{
f++;
}
if(strcmp(name,b)==0)
{
g++;
}
if(strcmp(name,c)==0)
{
h++;
}
if(strcmp(name,d)==0)
{
j++;
}
}
printf("\n\n");
printf("%s的得票为: %d\n", a, f);
printf("%s的得票为: %d\n", b, g);
printf("%s的得票为: %d\n", c, h);
printf("%s的得票为: %d\n", d, j);
if(f>=g && f>=h && f>=j)
{
printf("本次投票活动的胜利者是:%s\n",a);
}
else if(g>=h && g>=j)
{
printf("本次投票活动的胜利者是%s\n",b);
}
else if(h>=j)
{
printf("本次投票活动的胜利者是:%s\n",c);
}
else
{
printf("本次投票活动的胜利者是:%s\n",d);
}
system("pause");
return 0;
}
漩涡鸣人 发表于 2014-10-19 22:02
两个循环不应该分开哦,我帮您改了一下,顺便简化了一下:
哦 好像是的。。。。那为什么分开了就不值读取gets最后一个值呢进行判断呢?? 漩涡鸣人 发表于 2014-10-19 22:02
两个循环不应该分开哦,我帮您改了一下,顺便简化了一下:
哎呀 f =+1;那里搞错了,要改一下 f=++f; 不然程序还有病!
页:
[1]