鱼C论坛

 找回密码
 立即注册
查看: 1979|回复: 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行 多了一个'程'
#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();
}
void 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();
        }
}
想知道小甲鱼最近在做啥?请访问 -> 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行 多了一个'程'
#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();
}
void 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();
        }
}
想知道小甲鱼最近在做啥?请访问 -> 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, 2025-1-12 20:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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