C I';I’我是一个困在石头上的学生,剪纸练习题

C I';I’我是一个困在石头上的学生,剪纸练习题,c,C,我正在做一个练习题,想让我写一个关于石头、剪刀和布的基本游戏。嗯,我想我已经完成了挑战,因为我没有收到任何控制台错误或警告。但是,当我运行代码时,系统会提示我输入命令,但当我输入命令时,程序就会结束 有人看到我哪里出错了吗 对于初学者,如果在控制台中没有看到错误或警告,我应该采取什么步骤?你怎么知道从哪里开始调试 谢谢 我的上一个错误出现在userChoice()函数中。我想我的问题与我使用strcmp()有关 #包括 #包括 #包括 #包括 /*创建一个石头布剪刀游戏*/ char userI

我正在做一个练习题,想让我写一个关于石头、剪刀和布的基本游戏。嗯,我想我已经完成了挑战,因为我没有收到任何控制台错误或警告。但是,当我运行代码时,系统会提示我输入命令,但当我输入命令时,程序就会结束

有人看到我哪里出错了吗

对于初学者,如果在控制台中没有看到错误或警告,我应该采取什么步骤?你怎么知道从哪里开始调试

谢谢

我的上一个错误出现在userChoice()函数中。我想我的问题与我使用strcmp()有关

#包括
#包括
#包括
#包括
/*创建一个石头布剪刀游戏*/
char userInputString[9];
int用户输入;
计算机输入;
/*创建一个介于1-3之间的随机数,计算机可以
作为石头、布或剪刀的随机选择使用*/
无效计算机选择(){
srand(时间(空));
int dice=rand()%3+1;
如果(骰子=1){
int计算机输入=1;
}否则如果(骰子=2){
int计算机输入=2;
}否则如果(骰子=3){
字符计算机输入=3;
}否则{
printf(“错误!出了问题。”);
}
}
/*获取用户键入的石头、布或剪刀字符串,并将其转换为1-3之间的数字
可用于与计算机选择进行比较*/
void userChoice(){
if(strcmp(userInputString,“rock”)){
用户输入=1;
}else if(strcmp(userInputString,“paper”)){
用户输入=2;
}else if(strcmp(userInputString,“剪刀”)){
用户输入=3;
}否则{
printf(“错误!出现问题。\n”);
}
}
/*将用户和计算机选项进行比较,然后将获胜者打印到控制台*/
void compare(){
开关(计算机输入){
案例1:if(userInput=1){
printf(“计算机拾取的岩石!这是一个平局!\n”);
}else if(userInput=2){
printf(“电脑挑选的石头!你赢了!\n”);
}else if(userInput=3){
printf(“电脑拾取的石头!你输了!\n”);
}否则{
printf(“哎呀,出了点问题。\n”);
}
案例2:if(userInput=1){
printf(“计算机拾取的纸张!您丢失!\n”);
}else if(userInput=2){
printf(“计算机拾取的纸张!这是一张平局!\n”);
}else if(userInput=3){
printf(“电脑拣纸!你赢了!\n”);
}否则{
printf(“哎呀,出了点问题。\n”);
}案例3:if(userInput=1){
printf(“电脑剪刀!你赢了!\n”);
}else if(userInput=2){
printf(“电脑剪刀!你输了!\n”);
}else if(userInput=3){
printf(“电脑挑选的剪刀!这是一个抽签!\n”);
}否则{
printf(“哎呀,出了点问题。\n”);
}
}
}
int main(){
printf(“键入石头、纸或剪刀:\n”);
scanf(“%s”,&userInputString);
计算机选择();
userChoice();
比较();
返回0;
}
我期待一个基本的功能性游戏,包括石头、布、剪刀

if( dice = 1){

   int computerInput = 1;

}
在这里(和其他地方),您正在创建一个新的局部变量,其生存期在块结束时结束

删除
int
声明符,以便该语句修改现有的文件范围变量

另外,使用
==
进行比较<代码>=为变量指定一个新值,这不是您在这里想要的

if(strcmp(userInputString,"rock")){

        userInput = 1;

 }

strcmp()
如果两个字符串匹配,则返回0。因此,将
==0
添加到条件中。

“你怎么知道从哪里开始调试”-分而治之。请参阅
if(dice=2)
不只是将
dice
与2进行比较。它赋值并检查它是否为非零。你几乎肯定是指
if(dice==2)
@Fureeish。整洁的文章。对于初学者来说绝对应该阅读。你在
userChoice
中调用的
strcmp
应该是(例如
if(strcmp(userInputString,“rock”)==0)
而不是
if(strcmp(userInputString,“rock”)
compare
中的
case
语句之间应该有
break
if(strcmp(userInputString,"rock")){

        userInput = 1;

 }