gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:09:49 27 4
gpt4 key购买 nike

我的运动需要一些帮助。

Question of exercise

这是我的代码:

 #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。

这张图总结了我的问题

The value shows up as $0.00 even though the code runs

我尝试使用 switch 并且代码工作得很好,但我只是想找出一种方法来使这段代码在不使用 scanf("%c") 格式化程序的情况下工作。任何帮助将不胜感激!提前致谢!

最佳答案

您输入“100<enter>A”。您的代码旨在读取一个整数后跟一个字符。所以它读入“100”,然后是“<enter>”。如果您的代码设置为读取一个整数后跟一个字符,则您应该输入“100A<enter>”。

如果您想读取输入行并解析它们,请编写执行此操作的代码。您可以在读取整数后使用这样的函数来读取在它之后结束的行。然后就可以读取字符了。

关于c - scanf ("%c") 在 scanf ("%d"之后跳过,所以我的讲师告诉我将 scanf ("%d") 更改为 scanf ("%s"),但现在代码不再正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40270231/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com