|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- #include<string.h>
- #define NUM 3 //3个候选者
- #define NO 5 //5个投票者
- struct candidate
- {
- char name[10];
- int score;
- }candidate[NUM]={{"小可爱", 0}, {"小甲鱼", 0}, {"路人甲", 0}};
- void main()
- {
- int i, j, max;
- char cand[10];
- int k=NO;
- printf("欢迎进入良好公民评选投票系统:\n\n");
- printf("候选人有:");
- for(i = 0;i < NUM; i++)
- {
- printf("%s ",candidate[i].name);
- }
- printf("\n\n");
-
- for(i=0; i < k; i++)
- {
- printf("第 %d 位投票,请写下支持的候选人的名字:", i+1);
- scanf("%s", &cand);
- if(strcmp( cand, candidate[i].name) ==0 )
- {
- candidate[i].score++; //这里candidate[i].score++;为什么不能增加票数呀
- }
- }
-
- printf("\n\n");
- for(i = 0;i < NUM; i++)
- {
- printf("%s 同学得票数位:%d\n", candidate[i].name, candidate[i].score);
- }
- printf("\n");
- printf("本次投票活动的胜利者是:");
- max = candidate[0].score;
- for(i = 0;i < NUM; i++) //求票数的最大值
- {
- if(max < candidate[i].score)
- {
- max = candidate[i].score;
- }
- }
- for(i = 0;i < NUM; i++) //打印票数最大值的人的名字
- {
- if(max == candidate[i].score)
- {
- printf("%s\n", candidate[i].name);
- }
- }
- }
复制代码
请教各位,为什么票数一直不对,代码的中间那里candidate[i].score++;为什么不能计票数呀。
- for(i = 0; i < k; i++)
- {
- printf("第 %d 位投票,请写下支持的候选人的名字:", i + 1);
- scanf("%s", &cand);
- for(j = 0; j < NUM; ++j)
- {
- if(strcmp(cand, candidate[j].name) == 0)
- {
- candidate[j].score++; //这里candidate[i].score++;为什么不能增加票数呀
- }
- }
- }
复制代码
- max = candidate[0].score;
- for(i = 0;i < NUM; i++) //求票数的最大值
- {
- if(max < candidate[i].score)
- {
- max = candidate[i].score;
- }
- }
- for(i = 0;i < NUM; i++) //打印票数最大值的人的名字
- {
- if(max == candidate[i].score)
- {
- printf("%s\n", candidate[i].name);
- }
- }
复制代码
这里两次循环,没有必要
- #include<stdio.h>
- #include<string.h>
- #define NUM 3 //3个候选者
- #define NO 5 //5个投票者
- struct candidate
- {
- char name[10];
- int score;
- }candidate[NUM] = {{"小可爱", 0}, {"小甲鱼", 0}, {"路人甲", 0}};
- int main(void)
- {
- int i, j;
- char cand[10];
- int k = NO;
- printf("欢迎进入良好公民评选投票系统:\n\n");
- printf("候选人有:");
- for(i = 0; i < NUM; i++)
- {
- printf("%s ", candidate[i].name);
- }
- printf("\n\n");
- for(i = 0; i < k; i++)
- {
- printf("第 %d 位投票,请写下支持的候选人的名字:", i + 1);
- scanf("%s", &cand);
- for(j = 0; j < NUM; ++j)
- {
- if(strcmp(cand, candidate[j].name) == 0)
- {
- candidate[j].score++; //这里candidate[i].score++;为什么不能增加票数呀
- }
- }
- }
- printf("\n\n");
- for(i = 0; i < NUM; i++)
- {
- printf("%s 同学得票数位:%d\n", candidate[i].name, candidate[i].score);
- }
- printf("\n");
- printf("本次投票活动的胜利者是:");
-
-
- struct candidate *max = &candidate[0];
- for(i = 1; i < NUM; i++) // 求票数的最大值
- {
- if(max->score < candidate[i].score)
- {
- max = &candidate[i];
- }
- }
-
- printf("%s\n", max->name); // 打印票数最大值的人的名字
- return 0;
- }
复制代码
|
|