我的代码是正确的,我猜。然而,对于工资单,输出只显示零,并没有给予正确的输出。我在代码块编译。
#include <stdio.h>
int main()
{
float bs, hra, ma, da, ta, tax, ub, totalsalary;
printf("Enter basic salary: \n");
scanf("%f", &bs);
if (bs < 15000)
{hra == 0.03 * bs && ma == 0.02 * bs && da == 0.02 * bs && ta == 0.01 * bs && tax == 0.005 * bs && ub == 0.04 * bs;}
else if (bs >= 15000 && bs <= 30000)
{hra == 0.05 * bs && ma == 0.03 * bs && da == 0.04 * bs && ta == 0.02 * bs && tax == 0.02 * bs && ub == 0.04 * bs;}
else
{hra == 0.04 * bs && ma == 0.07 * bs && da == 0.03 * bs && ta == 0.03 * bs && tax == 0.03 * bs && ub == 0.1 * bs;}
totalsalary == (float) bs + hra + ma + da + ta - tax - ub;
printf("\nSalary slip\n");
printf("House rent allowance: %.2f\n", hra);
printf("Medical Allowance: %.2f\n", ma);
printf("Daily Allowance: %.2f\n", da);
printf("Traveling Allowance: %.2f\n", ta);
printf("Tax: %.2f\n", tax);
printf("Utility bills: %.2f\n", ub);
printf("Total Salary is: %.2f\n", totalsalary);
return 0;
}
This is my output screen:
我甚至在chat gpt中搜索代码,如果我从那里复制和粘贴,它可以工作。但是我写的代码不能。chat gpt给的代码和我写的代码完全相同。
2条答案
按热度按时间kqlmhetl1#
原文中的代码实际上并不正确。
像
hra == 0.03 * bs && ma == 0.02 * bs && da == 0.02 * bs && ta == 0.01 * bs && tax == 0.005 * bs && ub == 0.04 * bs;
这样的代码只检查某些东西是否相等;它不会改变任何变量的值。要实际更改所有相关变量,请使用=
代替==
,并使用;
代替&&
。类似地,
totalsalary == (float) bs + hra + ma + da + ta - tax - ub;
中的==
实际上应该是=
。由于变量已经是float,所以不需要使用
(float)
。下面的应该可以工作(但需要更好地格式化)。
3ks5zfa02#
首先要确保你使用的是正确的方括号
if (bs >= 15000 && bs <= 30000)
可以写成if ((bs >= 15000) && (bs <= 30000))
像这样
{hra == 0.03 * bs && ma == 0.02 * bs && da == 0.02 * bs && ta == 0.01 * bs && tax == 0.005 * bs && ub == 0.04 * bs;}
耦合{(hra== 0.03 * bs)&&(ma == 0.02 * bs)&&(da == 0.02 * bs)&&(ta == 0.01 * bs)&&(tax == 0.005 * bs)&&(ub == 0.04 * bs);}
此外,您正在比较hra,ma,da,ta,tax和ub的值,而不是分配给它们。
也许你想写
更正程序并查看输入的值。
几点建议: