用C语言函数做猜拳问题,出现个错误不知道改``高手指点

来源:百度知道 编辑:UC知道 时间:2024/05/18 07:16:11
#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)
{<

你出的问题真是不少。
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)