c新手吧 关注:8,605贴子:48,111
  • 2回复贴,共1

开个贴,解决新手们的C程序问题

只看楼主收藏回复

请用问题盖楼


1楼2017-02-16 11:54回复
    新手入门 做了一个猜数字的小游戏
    加入了一个自定义答案的功能之后 程序就不继续往下运行了(程序没报错),每次运行到“请输入两个零到九的整数”这里 程序就没有反映了 也没停止
    问了同学后说的是函数outcome的问题,但是我自定义的函数outcome只是求两个整数的平均数,以及判断是否输出错误三次,但是同学说后面的while循环里每次都要重新输出两个数,想问一下这个怎么改正?
    是该先运行函数,赋值给一个常量,然后循环里都用这个常量吗?
    要想的结果是我输入两个数后 函数outcome执行完 返回了平均数 以后就可以直接用了
    下面是全部代码
    #include
    #include
    #define ALL_NUMBER_OF_PEOPLE 2
    int check(void)
    {
    int password;
    printf("*******************\n");
    printf("*请输入4位密码开始游戏*\n");
    printf("*******************\n");
    scanf("%d",&password);
    return password;
    }
    int outcome(int a,int b)
    {
    int time,flat=1;
    int m = 0;
    while(flat)
    {
    scanf("%d %d",&a,&b);
    if(a<10&&b<10){
    m = (a + b)/ALL_NUMBER_OF_PEOPLE;
    flat = 0;
    }
    else{
    printf("输入错误\n");
    time++;
    }
    if (time == 3)
    {
    printf("你输出错误三次了");
    exit(0);
    }
    }
    return m;
    }
    int main(){
    printf("欢迎来到猜数字的游戏! 规则如下:\n");
    printf("游戏需要输入两个一位数,并求平均数\n");
    printf("小数部分会被省略 eg:(4+5)/2 = 4\n");
    printf("那么游戏开始\n");
    int password,i = 0;
    do{
    if (i == 3) {
    printf("你输出错误3次了,游戏结束");
    exit(0);
    }
    password = check();
    i++;
    }while(password != 1022);
    int a,b,right = 4;
    char n;
    printf("是否需要自定义答案(y/n)\n");
    //fflush(stdin);
    scanf(" %c",&n);
    switch (n)
    {
    case'Y':
    case'y':
    printf("请输入一个一位数数作为答案\n");
    scanf("%d",&right);
    printf("请输入两个零到九的整数\n");
    scanf(" %d %d",&a,&b);
    while(right != outcome(a,b)){
    if(right - outcome(a,b) > 0)
    {
    printf("你输出的太小了\n");
    }
    else
    {
    printf("你输入的太大了\n");
    }
    }
    break;
    case'n':
    case'N':
    printf("请输入两个零到九的整数\n");
    while(right != outcome(a,b)){
    if(right > outcome(a,b))
    {
    printf("你输出的太小了\n");
    }
    else
    {
    printf("你输入的太大了\n");
    }
    break;
    default:
    printf("输入有误\n");
    break;
    }
    printf("恭喜你回答正确");
    }
    return 0;
    }


    IP属地:陕西2楼2017-02-16 12:23
    回复
      这个是运行效果图 到这里点什么都没用了


      IP属地:陕西3楼2017-02-16 12:24
      回复