C语言石头剪刀布程序

我编了一个石头剪刀布程序,编译连接通过了,但是无法运行成功,大家看看哪里有问题?代码如下:#include<stdio.h>#include<stdlib.h>#incl... 我编了一个石头剪刀布程序,编译连接通过了,但是无法运行成功,大家看看哪里有问题?代码如下:
#include <stdio.h>
#include <stdlib.h>
#include<sys/types.h>
#include<sys/timeb.h>
main()
{
loop:
printf("欢迎来玩石头剪刀布,请使用键盘输入,0代表石头,1代表剪刀,2代表布。\n******************************************************\n");
int x,com,user;
unsigned int seedVal;
struct timeb timeBuf;
ftime(&timeBuf);
seedVal=((((unsigned int)timeBuf.time&0xFFFF)+
(unsigned int)timeBuf.millitm)^
(unsigned int)timeBuf.millitm);
srand((unsigned int)seedVal);
x=rand();
com=x%3;
scanf("%d\n",user);
if(user>2) printf("您的输入有误,请输入0、1、2中任意一个数字\n");
else
if(com==0)
{if(user==0) printf("平手\n");
else
{if(user==1) printf("输了\n");
else printf("赢了/n");}}
else {if(com==1) {if(user==0) printf("赢了\n");
else
{if(user==1) printf("平手\n");
else printf("输了\n");}}
else {if(user==0) printf("平手\n");
else
{if(user==1) printf("赢了\n");
else printf("输了\n");}}}
goto loop;
}
代码有一小步错了,最后一点修改如下,还是原来的问题:

else {if(user==0) printf("输了\n");
else
{if(user==1) printf("你赢了\n");
else printf("平手\n");}}}
goto loop;
}
展开
 我来答
cjj796
2013-08-23 · TA获得超过8708个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3440万
展开全部
帮你修改了一下判断部分。你试试吧:
#include <stdio.h>
#include <stdlib.h>
#include<sys/types.h>
#include<sys/timeb.h>
main()
{
  loop:
  printf("欢迎来玩石头剪刀布,请使用键盘输入,0代表石头,1代表剪刀,2代表布。\n******************************************************\n");
  int x,com,user;
  unsigned int seedVal;
  struct timeb timeBuf;
  ftime(&timeBuf);
  seedVal=((((unsigned int)timeBuf.time&0xFFFF)+
                  (unsigned int)timeBuf.millitm)^
                  (unsigned int)timeBuf.millitm);
  srand((unsigned int)seedVal);  
  x=rand();
  com=x%3;
  scanf("%d",&user);

  if(user>2) 
    printf("您的输入有误,请输入0、1、2中任意一个数字\n");
  else 
  {
    if(com==0) 
    {
if(user==0) printf("平手\n");
     if(user==1) printf("输了\n");
        if(user==2) printf("赢了\n");
    }
    if(com==1) 
    {
if(user==0) printf("赢了\n");
     if(user==1) printf("平手\n");
        if(user==2) printf("输了\n");
    }
    if(com==2) 
    {
if(user==0) printf("输了\n");
     if(user==1) printf("赢了\n");
        if(user==2) printf("平手\n");
    }

  }
goto loop;
}
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
心中风情4
2013-08-23 · TA获得超过2247个赞
知道大有可为答主
回答量:1779
采纳率:66%
帮助的人:1076万
展开全部

scanf("%d\n",user);


改为scanf("%d", &user);


把\nq去掉,user加上地址,就好了:

#include <stdio.h>
#include <stdlib.h>
#include<sys/types.h>
#include<sys/timeb.h>
main()
{
loop:
printf("欢迎来玩石头剪刀布,请使用键盘输入,0代表石头,1代表剪刀,2代表布。\n******************************************************\n");
int x,com,user;
unsigned int seedVal;
  struct timeb timeBuf;
  ftime(&timeBuf);
  seedVal=((((unsigned int)timeBuf.time&0xFFFF)+
                  (unsigned int)timeBuf.millitm)^
                  (unsigned int)timeBuf.millitm);
  srand((unsigned int)seedVal);
x=rand();
com=x%3;
scanf("%d",&user);
if(user>2) printf("您的输入有误,请输入0、1、2中任意一个数字\n");
else 
    if(com==0) 
{if(user==0) printf("平手\n");
    else 
{if(user==1) printf("输了\n");
    else printf("赢了/n");}}
else {if(com==1) {if(user==0) printf("赢了\n");
    else 
{if(user==1) printf("平手\n");
    else printf("输了\n");}}
else {if(user==0) printf("输了\n");
    else 
{if(user==1) printf("你赢了\n");
    else printf("平手\n");}}}
goto loop;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龚炜林
2013-08-23 · TA获得超过1560个赞
知道大有可为答主
回答量:1102
采纳率:66%
帮助的人:576万
展开全部
第一个严重点的错误是:scanf("%d\n",user);
应该为scanf("%d\n",&user);
其它就是if中可能隐藏着逻辑错误,没具体看,建议你把括号打清楚些。
每个if都标准的加上{}。
更多追问追答
追问
改过来了,可还是原来的问题,选择语句都检查过了,没有问题,我仔细看了一下,有一个没有提醒的警告:function should return a value; 'void' return type assumed
追答
具体不能运行成功的错误是什么?是程序崩溃,还是逻辑不对?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式