我用三个ram选项之一使总价成为c代码的问题是什么意思呢?ramchoices = 1or2or3 /这是我知道我的问题所在,但不知道如何解决。编译器需要一对一的关系。我该如何分解,仍然显示ramchoice取决于我选择的内容,而这些选择会影响价格。/

int main(void) {
/*declare variables*/
float baseprice;
float total;
float ramchoice;
baseprice=1029.48;

/*ramchoice can be 1 or 2 or 3*/

ramchoice=1||ramchoice=2||ramchoice=3;
total=baseprice+ramchoice;

/*initiate variable*/

scanf("%f",&ramchoice);
if("%f" (ramchoice==1))
{
    total=baseprice+179.99;
}
else if("%f" ramchoice==2)
{
    total=baseprice+94.99;
}
else if("%f" ramchoice==3)
{
    total=baseprice+69.99;
}

printf("total is %f",total);

return 0;
}

最佳答案

有几行与我之前从未见过的C代码不同。
您是否完全构成了自己的语法和含义?
您是否阅读了有关C的任何说明/教程?

ramchoice=1||ramchoice=2||ramchoice=3;


无论您认为这行做什么,它都会将变量ramchoice设置为值1,然后停止。



if("%f" (ramchoice==1))


if不能使用"%f"这样的字符串。 if需要一个布尔表达式。
您很接近使用ramchoice==1的布尔值,但是开始时的"%f"是非常错误的。


认真地说,您不能为某种语言制定规则,也不能祈祷它起作用。

这是我的改写,几乎可以解决您的问题:

int main(void)
{
    /*declare variables*/
    float baseprice = 1029.48;
    float total;
    int   ramchoice;

    printf("Please enter a ram selection: 1, 2, or 3\n");
    scanf("%d",&ramchoice);
    switch(ramchoice)
    {
        case 1:   total=baseprice+179.99; break;
        case 2:   total=baseprice+94.99;  break;
        case 3:   total=baseprice+69.99;  break;
        default:  printf("That was not a valid choice\n");
    }

    printf("total is %f",total);
    return 0;
}

09-11 18:44
查看更多