作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个计算每周工资的程序,那么任何加类工资都是该周正常工资的 1.5 倍。我的代码如下:
#include <stdio.h>
int main()
{
double payrate;
double hours;
double weeklypay = hours * payrate;
double overtimehours = hours - 40;
double overtimepay = weeklypay * 1.5;
double overtimesalary = weeklypay + (overtimehours * overtimepay);
printf("What is your standard hourly pay rate?\n");
scanf("%d",&payrate);
printf("How many hours do you work in a week?\n");
scanf("%d",&hours);
if (hours <= 40)
printf("This means your weekly pay is %d . \n", weeklypay);
else
printf("This means your weekly pay is %d . \n", overtimesalary);
return 0;
}
但是该程序仍然无法运行,我不明白为什么?我总是得到周薪的答案“1”,而不是给我答案。或者,如果我给出一个带小数的答案,我会得到 0 的答案。像这样:
What is your standard hourly pay rate?
2
How many hours do you work in a week?
2
This means your weekly pay is 1 .
我做错了什么?我是 C 语言新手,请原谅我的无知,但我确实需要一些帮助,因为我花了一整天的时间试图找出原因。
最佳答案
使用 scanf
时,您使用的是 %d
格式说明符,它需要 int
的地址,但您传递double
的地址。使用错误的格式说明符会调用未定义的行为。
对于 double
,请使用 %lf
格式说明符。
scanf("%lf",&payrate);
....
scanf("%lf",&hours);
在将任何值读入其中之前,您还要对值进行操作。您需要先读入值,然后对它们进行计算。
关于计算周薪和加类费的C程序不起作用?调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43035832/
我是一名优秀的程序员,十分优秀!