鱼C论坛

 找回密码
 立即注册
查看: 1804|回复: 5

[已解决]有一个错误,求大佬指点

[复制链接]
发表于 2019-9-20 17:43:10 | 显示全部楼层 |阅读模式

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

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

x
报错是这样的:执行 cl.exe 时出错.

2.exe - 1 error(s), 0 warning(s)




#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#define NUM 20
struct FOOD
{
char c;
int num;
}number[3];
struct VOTE
{
char c1;
char c2;
char c3;
}vote[NUM];
void count(char c,int n);
void menu()
int loadvote()
{
FILE *fp;
int i;
if((fp=fopen("voter.txt","r"))==NULL)
{
    printf("\n 不能打开此文件 \ n");
    return 0;
}
for(i=0;!feof(fp);i++)
{
   fscanf(fp,"%s%s%s",&vote[i].c1,&vote[i].c2,&vote[i].c3);
   }
fclose(fp);
return(i);
}
void select()
{
int m,w;
do
{  
    puts(" 下一个 " );
    puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
   puts("\t\t{ }");
    puts("\t\t{[1.  返回 ] }");
   puts("\t\t{[2.  退出 ]  }");
    puts("\t\t{ }");
puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
    printf(" 请选择你的数字 (1-2) : [ ]\b\b");
    scanf("%d",&m);
   if(m<1||m>2)
   {
     w=1;
      printf(" 错误 \ n");
      select();
   }
   else w=0;
switch(m)
   {
   case 1:printf("\n\n");menu();break;
   case 2:exit(0);
   }
}while(w==1);
}
void innum()
{
int i=loadvote();
  printf("\n 选票人数 :\t%d\n\n",i);
  select();
}
void add(char c1,char c2,char c3)
{
int i;
for(i=0;i<3;i++)
{
   switch(i)
   {
   case 0:count(c1,5);break;
   case 1:count(c2,3);break;
   case 2:count(c3,2);
   }
}
}
void count(char c,int n)
{
switch(c)
{
case 'a':number[0].num+=n;break;
case 'b':number[1].num+=n;break;  
case 'c':number[2].num+=n;
}
}
void input()
{
int i;
int m=loadvote();
printf("\n");
   number[0].num=number[1].num=number[2].num=0;
for(i=0;i<m;i++)
{
   printf("%c %c %c",vote[i].c1,vote[i].c2,vote[i].c3);
   if(vote[i].c1==vote[i].c2||vote[i].c1==vote[i].c3||vote[i].c2==vote[i].c3)
      printf("\t 该票无效 !\n");
    else
   {
     add(vote[i].c1,vote[i].c2,vote[i].c3);
     printf("\n");
   }
}
printf("\n\n");
select();
}
void output()
{
int n,i;
n=loadvote();
   number[0].num=number[1].num=number[2].num=0;
for(i=0;i<n;i++)
{
   if(vote[i].c1==vote[i].c2||vote[i].c1==vote[i].c3||vote[i].c2==vote[i].c3);
     
   else
   {
     add(vote[i].c1,vote[i].c2,vote[i].c3);
   }
}
printf("\n 候选人的得分 :\t");
  printf("a: %d\n",number[0].num);
printf("b: %d\n",number[1].num);
printf("c: %d\n\n\n",number[2].num);
select();
}
main()
{
void choose();
   menu();  
}
void menu()
{
void choose();
int n,w;
do
{ 程
    puts("\t\t^^^^^^^^^^^^ 足球先生投票序 ^^^^^^^^^^^^^^^^^^");  
    puts("\t\t{ }");
    puts("\t\t{  [1. 选票人数 : ]  }");
   puts("\t\t{  [2. 选票信息 :]   }");
   puts("\t\t{  [3. 分数 :]  }");
puts("\t\t{  [4. 结果 :]  }");
   puts("\t\t{  [5. 退出 ]   }");
    puts("\t\t{ }");
   puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
    printf(" 请选择你的数字 (1-5) :[ ]\b\b");
    scanf("%d",&n);
   if(n<1||n>5)
   {
     w=1;
     getchar();
   }
   else w=0;
}while(w==1);
switch(n)
{
case 1:innum();break;
case 2:input();break;
case 3:output();break;
case 4:choose();break;
case 5:exit(0);
}
}
void choose()
{
int c;
if(number[0].num>number[1].num&&number[0].num>number[2].num)
{
   c=1;
}
else if(number[1].num>number[0].num&&number[1].num>number[2].num)
{
   c=2;
}
else if(number[2].num>number[1].num&&number[2].num>number[0].num)
{
   c=3;
}
else
{
    printf(" 重新选票 !\n");
    main();
}
switch(c)
{
  case 1:printf("\n 祝贺 a 当选冠军 !\n\n\n");select();
case 2:printf("\n 祝贺 b 当选冠军 !\n\n\n");select();
case 3:printf("\n 祝贺 c 当选冠军 !\n\n\n");select();
}
}
最佳答案
2019-9-20 18:28:24
第 17 行 少了个分号 ;
第 24 行和第 51 行 \ n中间不能有空格
第134行 main函数中要么添加return;要么就加void
第140行 多了一个'程'
  1. #include<conio.h>
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. #define NUM 20
  5. struct FOOD
  6. {
  7.         char c;
  8.         int num;
  9. }number[3];
  10. struct VOTE
  11. {
  12.         char c1;
  13.         char c2;
  14.         char c3;
  15. }vote[NUM];
  16. void count(char c,int n);
  17. void menu();
  18. int loadvote()
  19. {
  20.         FILE *fp;
  21.         int i;
  22.         if((fp=fopen("voter.txt","r"))==NULL)
  23.         {
  24.                 printf("\n 不能打开此文件 \n");
  25.                 return 0;
  26.         }
  27.         for(i=0;!feof(fp);i++)
  28.         {
  29.                 fscanf(fp,"%s%s%s",&vote[i].c1,&vote[i].c2,&vote[i].c3);
  30.         }
  31.         fclose(fp);
  32.         return(i);
  33. }
  34. void select()
  35. {
  36.         int m,w;
  37.         do
  38.         {  
  39.                 puts(" 下一个 " );
  40.                 puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
  41.                 puts("\t\t{ }");
  42.                 puts("\t\t{[1.  返回 ] }");
  43.                 puts("\t\t{[2.  退出 ]  }");
  44.                 puts("\t\t{ }");
  45.                 puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
  46.                 printf(" 请选择你的数字 (1-2) : [ ]\b\b");
  47.                 scanf("%d",&m);
  48.                 if(m<1||m>2)
  49.                 {
  50.                         w=1;
  51.                         printf(" 错误 \n");
  52.                         select();
  53.                 }
  54.                 else w=0;
  55.                 switch(m)
  56.                 {
  57.                 case 1:printf("\n\n");menu();break;
  58.                 case 2:exit(0);
  59.                 }
  60.         }while(w==1);
  61. }
  62. void innum()
  63. {
  64.         int i=loadvote();
  65.         printf("\n 选票人数 :\t%d\n\n",i);
  66.         select();
  67. }
  68. void add(char c1,char c2,char c3)
  69. {
  70.         int i;
  71.         for(i=0;i<3;i++)
  72.         {
  73.                 switch(i)
  74.                 {
  75.                 case 0:count(c1,5);break;
  76.                 case 1:count(c2,3);break;
  77.                 case 2:count(c3,2);
  78.                 }
  79.         }
  80. }
  81. void count(char c,int n)
  82. {
  83.         switch(c)
  84.         {
  85.         case 'a':number[0].num+=n;break;
  86.         case 'b':number[1].num+=n;break;  
  87.         case 'c':number[2].num+=n;
  88.         }
  89. }
  90. void input()
  91. {
  92.         int i;
  93.         int m=loadvote();
  94.         printf("\n");
  95.         number[0].num=number[1].num=number[2].num=0;
  96.         for(i=0;i<m;i++)
  97.         {
  98.                 printf("%c %c %c",vote[i].c1,vote[i].c2,vote[i].c3);
  99.                 if(vote[i].c1==vote[i].c2||vote[i].c1==vote[i].c3||vote[i].c2==vote[i].c3)
  100.                         printf("\t 该票无效 !\n");
  101.                 else
  102.                 {
  103.                         add(vote[i].c1,vote[i].c2,vote[i].c3);
  104.                         printf("\n");
  105.                 }
  106.         }
  107.         printf("\n\n");
  108.         select();
  109. }
  110. void output()
  111. {
  112.         int n,i;
  113.         n=loadvote();
  114.         number[0].num=number[1].num=number[2].num=0;
  115.         for(i=0;i<n;i++)
  116.         {
  117.                 if(vote[i].c1==vote[i].c2||vote[i].c1==vote[i].c3||vote[i].c2==vote[i].c3);
  118.                
  119.                 else
  120.                 {
  121.                         add(vote[i].c1,vote[i].c2,vote[i].c3);
  122.                 }
  123.         }
  124.         printf("\n 候选人的得分 :\t");
  125.         printf("a: %d\n",number[0].num);
  126.         printf("b: %d\n",number[1].num);
  127.         printf("c: %d\n\n\n",number[2].num);
  128.         select();
  129. }
  130. void main()
  131. {
  132.         void choose();
  133.         menu();  
  134. }
  135. void menu()
  136. {
  137.         void choose();
  138.         int n,w;
  139.         do
  140.         {
  141.                 puts("\t\t^^^^^^^^^^^^ 足球先生投票序 ^^^^^^^^^^^^^^^^^^");  
  142.                 puts("\t\t{ }");
  143.                 puts("\t\t{  [1. 选票人数 : ]  }");
  144.                 puts("\t\t{  [2. 选票信息 :]   }");
  145.                 puts("\t\t{  [3. 分数 :]  }");
  146.                 puts("\t\t{  [4. 结果 :]  }");
  147.                 puts("\t\t{  [5. 退出 ]   }");
  148.                 puts("\t\t{ }");
  149.                 puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
  150.                 printf(" 请选择你的数字 (1-5) :[ ]\b\b");
  151.                 scanf("%d",&n);
  152.                 if(n<1||n>5)
  153.                 {
  154.                         w=1;
  155.                         getchar();
  156.                 }
  157.                 else w=0;
  158.         }while(w==1);
  159.         switch(n)
  160.         {
  161.         case 1:innum();break;
  162.         case 2:input();break;
  163.         case 3:output();break;
  164.         case 4:choose();break;
  165.         case 5:exit(0);
  166.         }
  167. }
  168. void choose()
  169. {
  170.         int c;
  171.         if(number[0].num>number[1].num&&number[0].num>number[2].num)
  172.         {
  173.                 c=1;
  174.         }
  175.         else if(number[1].num>number[0].num&&number[1].num>number[2].num)
  176.         {
  177.                 c=2;
  178.         }
  179.         else if(number[2].num>number[1].num&&number[2].num>number[0].num)
  180.         {
  181.                 c=3;
  182.         }
  183.         else
  184.         {
  185.                 printf(" 重新选票 !\n");
  186.                 main();
  187.         }
  188.         switch(c)
  189.         {
  190.         case 1:printf("\n 祝贺 a 当选冠军 !\n\n\n");select();
  191.         case 2:printf("\n 祝贺 b 当选冠军 !\n\n\n");select();
  192.         case 3:printf("\n 祝贺 c 当选冠军 !\n\n\n");select();
  193.         }
  194. }
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-20 17:58:49 | 显示全部楼层
      你的出错信息不完整,根本无助于找到问题,原样贴出全部错误信息。

      你先编译一下 hello,world ,先排除掉来自编译器的问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-20 18:11:30 | 显示全部楼层
jackz007 发表于 2019-9-20 17:58
你的出错信息不完整,根本无助于找到问题,原样贴出全部错误信息。

      你先编译一下 hello,wo ...

--------------------Configuration: 2 - Win32 Debug--------------------
Compiling...
2.c
C:\Users\Desktop\C语言\2.c(19) : error C2085: 'loadvote' : not in formal parameter list
C:\Users\Desktop\C语言\2.c(19) : error C2143: syntax error : missing ';' before '{'
C:\Users\Desktop\C语言\2.c(24) : warning C4129: ' ' : unrecognized character escape sequence
C:\Users\Desktop\C语言\2.c(25) : warning C4098: 'menu' : 'void' function returning a value
C:\Users\Desktop\C语言\2.c(32) : warning C4098: 'menu' : 'void' function returning a value
C:\Users\Desktop\C语言\2.c(51) : warning C4129: ' ' : unrecognized character escape sequence
C:\Users\Desktop\C语言\2.c(64) : warning C4013: 'loadvote' undefined; assuming extern returning int
C:\Users\Desktop\C语言\2.c(136) : error C2084: function 'void __cdecl menu()' already has a body
C:\Users\Desktop\C语言\2.c(140) : error C2018: unknown character '0xb3'
C:\Users\Desktop\C语言\2.c(140) : error C2018: unknown character '0xcc'
执行 cl.exe 时出错.

2.exe - 1 error(s), 0 warning(s)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-20 18:22:53 | 显示全部楼层
本帖最后由 jackz007 于 2019-9-20 18:25 编辑

第17行
void menu()             ;

第24行
        printf("\n 不能打开此文件 \ n");

第51行
       printf(" 错误 \ n");

第140行
        {

      先把这几处改了,看看能不能编译通过。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-20 18:28:24 | 显示全部楼层    本楼为最佳答案   
第 17 行 少了个分号 ;
第 24 行和第 51 行 \ n中间不能有空格
第134行 main函数中要么添加return;要么就加void
第140行 多了一个'程'
  1. #include<conio.h>
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. #define NUM 20
  5. struct FOOD
  6. {
  7.         char c;
  8.         int num;
  9. }number[3];
  10. struct VOTE
  11. {
  12.         char c1;
  13.         char c2;
  14.         char c3;
  15. }vote[NUM];
  16. void count(char c,int n);
  17. void menu();
  18. int loadvote()
  19. {
  20.         FILE *fp;
  21.         int i;
  22.         if((fp=fopen("voter.txt","r"))==NULL)
  23.         {
  24.                 printf("\n 不能打开此文件 \n");
  25.                 return 0;
  26.         }
  27.         for(i=0;!feof(fp);i++)
  28.         {
  29.                 fscanf(fp,"%s%s%s",&vote[i].c1,&vote[i].c2,&vote[i].c3);
  30.         }
  31.         fclose(fp);
  32.         return(i);
  33. }
  34. void select()
  35. {
  36.         int m,w;
  37.         do
  38.         {  
  39.                 puts(" 下一个 " );
  40.                 puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
  41.                 puts("\t\t{ }");
  42.                 puts("\t\t{[1.  返回 ] }");
  43.                 puts("\t\t{[2.  退出 ]  }");
  44.                 puts("\t\t{ }");
  45.                 puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
  46.                 printf(" 请选择你的数字 (1-2) : [ ]\b\b");
  47.                 scanf("%d",&m);
  48.                 if(m<1||m>2)
  49.                 {
  50.                         w=1;
  51.                         printf(" 错误 \n");
  52.                         select();
  53.                 }
  54.                 else w=0;
  55.                 switch(m)
  56.                 {
  57.                 case 1:printf("\n\n");menu();break;
  58.                 case 2:exit(0);
  59.                 }
  60.         }while(w==1);
  61. }
  62. void innum()
  63. {
  64.         int i=loadvote();
  65.         printf("\n 选票人数 :\t%d\n\n",i);
  66.         select();
  67. }
  68. void add(char c1,char c2,char c3)
  69. {
  70.         int i;
  71.         for(i=0;i<3;i++)
  72.         {
  73.                 switch(i)
  74.                 {
  75.                 case 0:count(c1,5);break;
  76.                 case 1:count(c2,3);break;
  77.                 case 2:count(c3,2);
  78.                 }
  79.         }
  80. }
  81. void count(char c,int n)
  82. {
  83.         switch(c)
  84.         {
  85.         case 'a':number[0].num+=n;break;
  86.         case 'b':number[1].num+=n;break;  
  87.         case 'c':number[2].num+=n;
  88.         }
  89. }
  90. void input()
  91. {
  92.         int i;
  93.         int m=loadvote();
  94.         printf("\n");
  95.         number[0].num=number[1].num=number[2].num=0;
  96.         for(i=0;i<m;i++)
  97.         {
  98.                 printf("%c %c %c",vote[i].c1,vote[i].c2,vote[i].c3);
  99.                 if(vote[i].c1==vote[i].c2||vote[i].c1==vote[i].c3||vote[i].c2==vote[i].c3)
  100.                         printf("\t 该票无效 !\n");
  101.                 else
  102.                 {
  103.                         add(vote[i].c1,vote[i].c2,vote[i].c3);
  104.                         printf("\n");
  105.                 }
  106.         }
  107.         printf("\n\n");
  108.         select();
  109. }
  110. void output()
  111. {
  112.         int n,i;
  113.         n=loadvote();
  114.         number[0].num=number[1].num=number[2].num=0;
  115.         for(i=0;i<n;i++)
  116.         {
  117.                 if(vote[i].c1==vote[i].c2||vote[i].c1==vote[i].c3||vote[i].c2==vote[i].c3);
  118.                
  119.                 else
  120.                 {
  121.                         add(vote[i].c1,vote[i].c2,vote[i].c3);
  122.                 }
  123.         }
  124.         printf("\n 候选人的得分 :\t");
  125.         printf("a: %d\n",number[0].num);
  126.         printf("b: %d\n",number[1].num);
  127.         printf("c: %d\n\n\n",number[2].num);
  128.         select();
  129. }
  130. void main()
  131. {
  132.         void choose();
  133.         menu();  
  134. }
  135. void menu()
  136. {
  137.         void choose();
  138.         int n,w;
  139.         do
  140.         {
  141.                 puts("\t\t^^^^^^^^^^^^ 足球先生投票序 ^^^^^^^^^^^^^^^^^^");  
  142.                 puts("\t\t{ }");
  143.                 puts("\t\t{  [1. 选票人数 : ]  }");
  144.                 puts("\t\t{  [2. 选票信息 :]   }");
  145.                 puts("\t\t{  [3. 分数 :]  }");
  146.                 puts("\t\t{  [4. 结果 :]  }");
  147.                 puts("\t\t{  [5. 退出 ]   }");
  148.                 puts("\t\t{ }");
  149.                 puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
  150.                 printf(" 请选择你的数字 (1-5) :[ ]\b\b");
  151.                 scanf("%d",&n);
  152.                 if(n<1||n>5)
  153.                 {
  154.                         w=1;
  155.                         getchar();
  156.                 }
  157.                 else w=0;
  158.         }while(w==1);
  159.         switch(n)
  160.         {
  161.         case 1:innum();break;
  162.         case 2:input();break;
  163.         case 3:output();break;
  164.         case 4:choose();break;
  165.         case 5:exit(0);
  166.         }
  167. }
  168. void choose()
  169. {
  170.         int c;
  171.         if(number[0].num>number[1].num&&number[0].num>number[2].num)
  172.         {
  173.                 c=1;
  174.         }
  175.         else if(number[1].num>number[0].num&&number[1].num>number[2].num)
  176.         {
  177.                 c=2;
  178.         }
  179.         else if(number[2].num>number[1].num&&number[2].num>number[0].num)
  180.         {
  181.                 c=3;
  182.         }
  183.         else
  184.         {
  185.                 printf(" 重新选票 !\n");
  186.                 main();
  187.         }
  188.         switch(c)
  189.         {
  190.         case 1:printf("\n 祝贺 a 当选冠军 !\n\n\n");select();
  191.         case 2:printf("\n 祝贺 b 当选冠军 !\n\n\n");select();
  192.         case 3:printf("\n 祝贺 c 当选冠军 !\n\n\n");select();
  193.         }
  194. }
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-20 18:42:37 | 显示全部楼层
jackz007 发表于 2019-9-20 18:22
第17行
void menu()             ;

感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 12:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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