scanf( "%c" ) 在 scanf( "%d" 之后跳过了,所以我的讲师告诉我将 scanf( "%d" ) 更改为 scanf( "%s" ),但现在代码不再正常运行

  • 本文关键字:scanf 代码 正常运行 不再 过了 之后 scanf
  • 更新时间 :
  • 英文 :


我的练习需要一些帮助。

运动问题

这是我的代码:

 #include <stdio.h>
main()
{
int price,new_price;
char code;
printf("Enter the price:");
scanf("%d",&price);
printf("Enter the pricing code:");
scanf("%s",&code);
if(code == 'A')
{
    new_price=price*0.5;
    printf("New discounted price is $%d.00",new_price);
}
else if(code =='B')
{
    new_price=price*0.6;
    printf("New discounted price is $%d.00",new_price);
}
}

我知道scanf("%c")在输入scanf("%d")后会被跳过,所以当我向我的讲师寻求解决方案时,她告诉我将scanf("%c")更改为scanf("%s")。问题是我无法获得新的折扣价格。该值将显示为$0.00。

这张图总结了我的问题

值显示为$0.00,即使代码运行

我尝试使用开关和代码工作得很好,但我只是想找出一种方法,使这段代码工作不使用scanf("%c")格式化器。任何帮助将非常感激!

你输入了" 100<enter>A "。您的代码被设计为读取后跟字符的整数。所以它读的是"100",然后是"<enter>"。如果您的代码设置为读取后跟字符的整数,则应该输入"100A<enter>"。

如果您想读取输入行并解析它们,请编写相应的代码。您可以在读取整数之后使用这样的函数来读取以整数结尾的行。然后你可以读这个字符

最新更新