问题遇到的现象和发生背景
如下,循环嵌套执行了switch,if,但是while没有执行
大一c语言基础,计算外卖价格,超1000g的部分每500+3元,不足按500,ch =4就+5;ch=0不加
用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
int main()
{
int a,b,i,n;
char ch;
scanf("%d %c",&a,&ch);
switch(ch)
{
case 'n':
if(a<=1000)
{
n=4;
}
if(a>1000)
{
a=a-1000;
i=1;
while(a<0)
{
b=a-500;
i=i+1;
}
n=3i+4;
}
break;
case 'y':
if(a<=1000)
{
n=4+5;
}
if(a>1000)
{
a=a-1000;
i=1;
while(a<0)
{
i++;
a=a-500;
i=i+1;
}
n=5+4+3i;
}
break;
}
printf("%d",n);
return 0;
}
运行结果及报错内容
input 2000 n
output 12
我的解答思路和尝试过的方法
想过if的算法可行,但是这个我想知道为什么不执行
我想要达到的结果
input 2000 n
output 15