我用三个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;
}