#include<stdio.h> int main() { int price; int apple; int pear; int orange; int grape; int choice; printf("[1]apple\n"); printf("[2]pear\n") ; printf("[3]orange\n"); printf("[4]grape\n"); printf("[0]exit\n"); for (int i=1;i<=5;i++) { printf("请输入序号:"); scanf("%n",&choice) ; if(choice==1) printf("price=3"); if(choice==2) printf("price==2"); if(choice==3) printf("price==5"); if(choice==4) printf("price==6"); if(choice==0) break; } 哪里错了
时间: 2024-04-15 12:27:30 浏览: 90
#include <stdio.h>
在你的代码中,scanf函数的格式控制字符串`%n`是错误的。应该使用`%d`来读取整数值。另外,你的循环变量`i`没有被使用,可以将其删除。以下是修改后的代码:
```c
#include <stdio.h>
int main()
{
int price;
int choice;
printf("[1]apple\n");
printf("[2]pear\n") ;
printf("[3]orange\n");
printf("[4]grape\n");
printf("[0]exit\n");
for (;;)
{
printf("请输入序号:");
scanf("%d", &choice);
if (choice == 1)
price = 3;
else if (choice == 2)
price = 2;
else if (choice == 3)
price = 5;
else if (choice == 4)
price = 6;
else if (choice == 0)
break;
printf("price=%d\n", price);
}
return 0;
}
```
修改后的代码中,使用了无限循环 `for (;;)`,可以一直接受输入,直到用户选择退出(输入0)。对于不同的选择,使用了`if-else`语句来给`price`赋值,并输出对应的价格。
阅读全文