江苏省轮斗洗砂机厂家:用C语言函数做猜拳问题,出现个错误不知道改``高手指点

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/06 01:38:55
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int choiceUser(int,int);
int choiceComputer();
void main()
{
do
{
int a=1,b=2,c=3,d,e;
printf("请出拳<1-石头;2-剪子;3-布>:");
choiceUser(a,b);
choiceComputer();
d=choiceUser();
e=choiceComputer();
if(d==1&&e==2||d==2&&e==1||d==3&&e==1)
{
printf("您赢了。");
}
else if(d==1&&e==3||d==2&&e==1||d==3&&e==2)
{
printf("您输了。");
}
else
{
printf("您和电脑打平。");
}

}while(1);
}
int choiceUser(int a,int b )
{
int user;
scanf("%d",&user);
return user;
if(user>=1&&user<=3)
{
if(user==1)
{
printf("您出的是:石头\n");
}
if(user==2)
{
printf("您出的是:剪刀\n");
}
if(user==3)
{
printf("您出的是:布\n");
}
}
else
{
printf("您输入错误!\n");
}
}
int choiceComputer()
{
int computer;
srand((unsigned)time(NULL));
computer=rand()%3+1;
return computer;
if(computer==1)
{
printf("电脑出的是:石头\n");
}
if(computer==2)
{
printf("电脑出的是:剪刀\n");
}
if(computer==3)
{
printf("电脑出的是:布\n");
}
}
以上我自己写的,但是编译的时候出现一个错误
D:\新建文件夹\练习\猜拳游戏.cpp(14) : error C2660: 'choiceUser' : function does not take 0 parameters
我不会改 还请高手帮我改一改我自己写的这个程序~~谢谢~
别复制起来的乱七八糟来 在我的程序上改 别人的程序我不认识我是菜鸟才开始学。有本事拿分的人还追加

你出的问题真是不少。
1、函数choiceuser写错了,你并没有用到那两个参数a\b为什么要写呢?
2、函数声明一次就够了,为什么还要在main里再声明一次呢?
3、函数中如果执行了return命令,就不会再往下执行了,所以“您出的是:石头”这些话并不会输出。
4、这个不算错误,只是编程习惯而已,为什么if后面只有一条语句你还要加大括号呢?这样会使程序可读性降低的。
我给你改好了:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int choiceUser(void);
int choiceComputer(void);
void main()
{
do
{
int a=1,b=2,c=3,d,e;
printf("请出拳<1-石头;2-剪子;3-布>:");
d=choiceUser();
e=choiceComputer();
if(d==1&&e==2||d==2&&e==1||d==3&&e==1)
printf("您赢了。");
else if(d==1&&e==3||d==2&&e==1||d==3&&e==2)
printf("您输了。");
else
printf("您和电脑打平。");
}while(1);
}

int choiceUser()
{
int user;
scanf("%d",&user);
if(user>=1&&user<=3)
{
if(user==1)
printf("您出的是:石头\n");
if(user==2)
printf("您出的是:剪刀\n");
if(user==3)
printf("您出的是:布\n");
}
else
printf("您输入错误!\n");
return user;
}

int choiceComputer()
{
int computer;
srand((unsigned)time(NULL));
computer=rand()%3+1;
if(computer==1)
printf("电脑出的是:石头\n");
if(computer==2)
printf("电脑出的是:剪刀\n");
if(computer==3)
printf("电脑出的是:布\n");
return computer;
}

因为没有调试,只简单的答复,解决编译报错。如果算法有错,运行出来乱七八糟,应该自己改,增强能力。实在不行加群27791428,或者我QQ 47923303慢慢给你说。
程序中
choiceUser(a,b);
choiceComputer();
d=choiceUser();
e=choiceComputer();
这个语句使两个函数都运行了两次
而你的choiceUser()是带参数的,所以出现这个错误
应该就直接改成
d=choiceUser(a,b);
e=choiceComputer();
就可以了