gpt4 book ai didi

计算周薪和加类费的C程序不起作用?调试

转载 作者:行者123 更新时间:2023-11-30 16:48:15 31 4
gpt4 key购买 nike

我正在创建一个计算每周工资的程序,那么任何加类工资都是该周正常工资的 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/

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