活動小丑 发表于 2021-7-13 10:01:26

小甲鱼的投票系统,经过我修过后的版本!

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

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

#defineCAND         4
#defineVOTE         CAND * 2
#define__SAVE_FILENAME__      "WINNER.txt"
struct VOTESYSTEM
{
      char name;// 姓名
      int vNum;       // 票数
}vNum;

char *winner();

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

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

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

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

      system("cls");
      fileopen = fopen(__SAVE_FILENAME__, "w+");
      printf("投票结果\n");
      for ( i = 0; i < CAND; i++)
      {
                fprintf(fileopen, "候选人: %s\t票数: %d\n", vNum.name, vNum.vNum);
                printf("候选人: %s\t票数: %d\n", vNum.name, vNum.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.vNum < vNum.vNum)
                {
                        Winner = i;
                }               
      }
      return vNum.name;
}

活動小丑 发表于 2021-7-13 10:03:55

兄弟们,这里本人犯了一个小错误,文件读写完成之后一定要关闭。
不要学我这样,后补的代码 fclose(fileopen);
页: [1]
查看完整版本: 小甲鱼的投票系统,经过我修过后的版本!