鱼C论坛

 找回密码
 立即注册
查看: 1614|回复: 1

[技术交流] 小甲鱼的投票系统,经过我修过后的版本!

[复制链接]
发表于 2021-7-13 10:01:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
*  小甲鱼的投票系统,经过我修过后的版本!
*  小甲鱼的C语言教程。
*/

#define  CAND           4
#define  VOTE           CAND * 2
#define  __SAVE_FILENAME__      "WINNER.txt"
struct VOTESYSTEM
{
        char name[20];  // 姓名
        int vNum;       // 票数
}vNum[CAND];

char *winner();

int main ( int argc,char *argv [ ] )
{
        int i, j;
        FILE *fileopen = NULL;
        char select[20];

        for ( i = 0; i < CAND; i++)
        {
                printf("请输入候选人的姓名: ");
                scanf("%s", vNum[i].name);
        }

        system("pause");
        system("cls");
        printf("候选人姓名: ");
        for ( j = 0; j < CAND; j++)
        {
                printf("%-2s  ", vNum[j].name );
        }
        putchar('\n');
        for ( i = 0; i < VOTE; i++)
        {
                printf("请输入要投票的候选人: ");
                scanf("%s", select);
                for ( j = 0; j < CAND; j++)
                {
                        if (strcmp(vNum[j].name, select) == 0)
                        {
                                vNum[j].vNum++;
                                break;
                        }
                }
        }

        struct VOTESYSTEM vTemp;
        for (i = 0; i < CAND - 1; i++)
        {
                for (j = 0; j < CAND - i - 1; j++)
                {
                        if (vNum[j].vNum < vNum[j + 1].vNum)
                        {
                                vTemp = vNum[j];
                                vNum[j] = vNum[j + 1];
                                vNum[j + 1] = vTemp;
                        }
                }
        }

        system("cls");
        fileopen = fopen(__SAVE_FILENAME__, "w+");
        printf("投票结果\n");
        for ( i = 0; i < CAND; i++)
        {
                fprintf(fileopen, "候选人: %s\t票数: %d\n", vNum[i].name, vNum[i].vNum);
                printf("候选人: %s\t票数: %d\n", vNum[i].name, vNum[i].vNum);
        }
        printf("获胜者: %s\n", winner());
        fprintf(fileopen, "获胜者: %s\n", winner());
        return 0;
}

char *winner()
{
        int i = 0,
            Winner = i;
        for (int i = 1; i < CAND; i++)
        {
                if (vNum[Winner].vNum < vNum[i].vNum)
                {
                        Winner = i;
                }                
        }
        return vNum[Winner].name;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-7-13 10:03:55 | 显示全部楼层
兄弟们,这里本人犯了一个小错误,文件读写完成之后一定要关闭。
不要学我这样,后补的代码 fclose(fileopen);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-16 05:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表