有一个错误,求大佬指点
报错是这样的:执行 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;
struct VOTE
{
char c1;
char c2;
char c3;
}vote;
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.c1,&vote.c2,&vote.c3);
}
fclose(fp);
return(i);
}
void select()
{
int m,w;
do
{
puts(" 下一个 " );
puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
puts("\t\t{ }");
puts("\t\t{ }");
puts("\t\t{}");
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.num+=n;break;
case 'b':number.num+=n;break;
case 'c':number.num+=n;
}
}
void input()
{
int i;
int m=loadvote();
printf("\n");
number.num=number.num=number.num=0;
for(i=0;i<m;i++)
{
printf("%c %c %c",vote.c1,vote.c2,vote.c3);
if(vote.c1==vote.c2||vote.c1==vote.c3||vote.c2==vote.c3)
printf("\t 该票无效 !\n");
else
{
add(vote.c1,vote.c2,vote.c3);
printf("\n");
}
}
printf("\n\n");
select();
}
void output()
{
int n,i;
n=loadvote();
number.num=number.num=number.num=0;
for(i=0;i<n;i++)
{
if(vote.c1==vote.c2||vote.c1==vote.c3||vote.c2==vote.c3);
else
{
add(vote.c1,vote.c2,vote.c3);
}
}
printf("\n 候选人的得分 :\t");
printf("a: %d\n",number.num);
printf("b: %d\n",number.num);
printf("c: %d\n\n\n",number.num);
select();
}
main()
{
void choose();
menu();
}
void menu()
{
void choose();
int n,w;
do
{ 程
puts("\t\t^^^^^^^^^^^^ 足球先生投票序 ^^^^^^^^^^^^^^^^^^");
puts("\t\t{ }");
puts("\t\t{}");
puts("\t\t{ }");
puts("\t\t{}");
puts("\t\t{}");
puts("\t\t{ }");
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.num>number.num&&number.num>number.num)
{
c=1;
}
else if(number.num>number.num&&number.num>number.num)
{
c=2;
}
else if(number.num>number.num&&number.num>number.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();
}
}
你的出错信息不完整,根本无助于找到问题,原样贴出全部错误信息。
你先编译一下 hello,world ,先排除掉来自编译器的问题。 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)
本帖最后由 jackz007 于 2019-9-20 18:25 编辑
第17行
void menu() ;
第24行
printf("\n 不能打开此文件 \ n");
第51行
printf(" 错误 \ n");
第140行
{ 程
先把这几处改了,看看能不能编译通过。 第 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;
struct VOTE
{
char c1;
char c2;
char c3;
}vote;
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.c1,&vote.c2,&vote.c3);
}
fclose(fp);
return(i);
}
void select()
{
int m,w;
do
{
puts(" 下一个 " );
puts("\t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
puts("\t\t{ }");
puts("\t\t{ }");
puts("\t\t{}");
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.num+=n;break;
case 'b':number.num+=n;break;
case 'c':number.num+=n;
}
}
void input()
{
int i;
int m=loadvote();
printf("\n");
number.num=number.num=number.num=0;
for(i=0;i<m;i++)
{
printf("%c %c %c",vote.c1,vote.c2,vote.c3);
if(vote.c1==vote.c2||vote.c1==vote.c3||vote.c2==vote.c3)
printf("\t 该票无效 !\n");
else
{
add(vote.c1,vote.c2,vote.c3);
printf("\n");
}
}
printf("\n\n");
select();
}
void output()
{
int n,i;
n=loadvote();
number.num=number.num=number.num=0;
for(i=0;i<n;i++)
{
if(vote.c1==vote.c2||vote.c1==vote.c3||vote.c2==vote.c3);
else
{
add(vote.c1,vote.c2,vote.c3);
}
}
printf("\n 候选人的得分 :\t");
printf("a: %d\n",number.num);
printf("b: %d\n",number.num);
printf("c: %d\n\n\n",number.num);
select();
}
void main()
{
void choose();
menu();
}
void menu()
{
void choose();
int n,w;
do
{
puts("\t\t^^^^^^^^^^^^ 足球先生投票序 ^^^^^^^^^^^^^^^^^^");
puts("\t\t{ }");
puts("\t\t{}");
puts("\t\t{ }");
puts("\t\t{}");
puts("\t\t{}");
puts("\t\t{ }");
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.num>number.num&&number.num>number.num)
{
c=1;
}
else if(number.num>number.num&&number.num>number.num)
{
c=2;
}
else if(number.num>number.num&&number.num>number.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();
}
}
jackz007 发表于 2019-9-20 18:22
第17行
void menu() ;
感谢
页:
[1]