int choice; double price; scanf("%d", &choice); switch(choice){ case 1: price = 3.0; case 2: price = 2.5; default: price = 0.0; } printf("%0.1f", price); 输入1,输出  1 分 输入3,输出
时间: 2024-03-25 08:40:36 浏览: 109
c代码-while(scanf("%d%d", &i, &j) == 2) 和 while(~scanf("%d%d",&a,&b)) 的差别
当输入1时,程序输出如下:
```
3.0
```
当输入3时,程序输出如下:
```
0.0
```
程序如下所示:
```c
int choice;
double price;
scanf("%d", &choice);
switch(choice){
case 1: price = 3.0;
case 2: price = 2.5;
default: price = 0.0;
}
printf("%0.1f", price);
```
当输入1时,程序执行第一个case语句,将price的值赋为3.0,然后继续执行第二个case语句,将price的值又赋为2.5,但并没有遇到break语句,因此程序继续执行default语句,将price的值又赋为0.0,最终输出3.0。
当输入3时,程序执行default语句,将price的值赋为0.0,最终输出0.0。
注意,程序中的printf语句使用了"%0.1f"的格式化字符串,表示输出一个小数,保留1位小数。
阅读全文