mack1983 发表于 2014-3-29 10:46:35

54讲,课后作业,投票系统

有空的大虾帮忙看一下,问题在图里,源码在图下面:

/*
题目:对候选人得标的统计程序。设有4个候选人,每次输入一个得标的候选人的名字,
   要求最后输出各人得标结果
*/
#if(1)
#include <stdio.h>
#include <string.h>
int main()
{
for (;1;)
{
struct tp
{
char *a1; //小甲鱼
char *a2; //苍井空
char *a3; //松岛枫
char *a4; //莫丁丁
char temp; //接收输入的候选人的名
int a;//小甲鱼得票次数
int b; //苍井空得票次数
int c;//松岛枫得票次数
int d;//莫丁丁得票次数
}arr={"小甲鱼","苍井空","松岛枫","莫丁丁",0,0,0,0,0};
int i;
printf("欢迎进入良好公民评选投票系统()\n\n");
printf("候选人有:%-10s%-10s%-10s%-10s\n\n ",arr.a1,arr.a2,arr.a3,arr.a4);

//问题2:如写在没有输入性名的时候按回车结束循环,继续往下执行?
for (i=1;i<=10;i++)//接收候选人输入,并记录得票数
{
printf("第 %d 位投票,请写下支持的候选人名字:",i); //问题1:第一行总是多一个空格。
gets(arr.temp); //接收候选人输入
if(strcmp(arr.temp,arr.a1)==0)//比较输入是的不是小甲鱼
{
   arr.a++;   //如果是记录得一票
}
if(strcmp(arr.temp,arr.a2)==0) //比较输入是的不是苍井空
{
   arr.b++;   //如果是记录得一票
}
if(strcmp(arr.temp,arr.a3)==0) //比较输入是的不是松岛枫
{
   arr.c++;   //如果是记录得一票
}
if(strcmp(arr.temp,arr.a4)==0) //比较输入是的不是莫丁丁
{
   arr.d++;
}
}
printf("\n\n");
printf("%s 同学得票数为:%d\n",arr.a1,arr.a);//打印各个候选人票数
printf("%s 同学得票数为:%d\n",arr.a2,arr.b);
printf("%s 同学得票数为:%d\n",arr.a3,arr.c);
printf("%s 同学得票数为:%d\n",arr.a4,arr.d);
printf("\n\n");

if(arr.a<arr.b)   //比较谁的票数最高,票数最高的名保存在arr.a1属性里
{
arr.a1=arr.a2;
}
if(arr.a<arr.c)
{
arr.a1=arr.a3;
}
if(arr.a<arr.d)
{
arr.a1=arr.a4;
}
printf("\n本次投票活动的胜利者是:%s\n",arr.a1);
printf("请按任意键继续....\n");
getch();


}
}
#endif

页: [1]
查看完整版本: 54讲,课后作业,投票系统