一只哈密瓜 发表于 2020-2-19 13:31:38

猜价格程序出了一丢丢问题

我的程序目前可以输入序号后打印出相应问题,但后边不论输入什么价格都显示猜中价格
有没大佬知道哪有问题












#include<stdio.h>
int main()
{
        int k,a,b,c=1;
        printf("请输入产品序号,产品号0~5:\n");
        scanf("%d",&k);
        switch (k)
        {
    case 1:
        printf("《ASUA猛禽ROG2080Ti》输入你猜想的价格,10次以内猜中算成功。请输入猜想的价格:\n");
        a=10999;
        break;
        case 2:
        printf("《ROG周年定制版太阳神机箱》输入你猜想的价格,10次以内猜中算成功。请输入猜想的价格:\n");
        a=29999;
        break;
        case 3:
        printf("《蝴蝶刀蓝宝石0.07磨》输入你猜想的价格,10次以内猜中算成功。请输入猜想的价格:\n");
        a=111111;
    break;
        case 4:
        printf("《iPhone 11Pro max2+512》输入你猜想的价格,10次以内猜中算成功。请输入猜想的价格:\n");
        a=15999;
    break;
        case 5:
        printf("《海盗船K95 RGB幻黑》输入你猜想的价格,10次以内猜中算成功。请输入猜想的价格:\n");
        a=1918;
    break;
        case 0:
        printf("《3Dconnexion SpaceMose》输入你猜想的价格,10次以内猜中算成功。请输入猜想的价格:\n");
        a=3680;
    break;}
scanf("%d",&b);
        if(b=a)
                        {
                        printf("恭喜你猜中价格\n");
                        printf("你猜中价格的次数为",c);
                        }

                        if(b<a)
                        {printf("你猜少了");
                        printf("你还可以猜的次数为",10-c);
                        scanf("%d",&b);
            c++;
                        }
                        if(b>a)
                        {printf("你猜多了");
                        printf("你还可以猜的次数为",10-c);
                        scanf("%d",&b);
                        c++;
                }
                if(c=11)
                        printf("GAME OVER");
return 0;

}

东辰木 发表于 2020-2-19 13:47:33

判断条件写错了
if(b=a)   if(c=11)这两句错了
你这么写相当于把a的值赋给b,然后判断b的真假,只要不是0,就会打印下面的语句
判断是否相等要用 ==,改成 if (b == a) 、if (c == 11)就可以了

一只哈密瓜 发表于 2020-2-19 14:06:51

东辰木 发表于 2020-2-19 13:47
判断条件写错了
if(b=a)   if(c=11)这两句错了
你这么写相当于把a的值赋给b,然后判断b的真假,只要不是 ...

哦 谢谢大佬
页: [1]
查看完整版本: 猜价格程序出了一丢丢问题