尽管代码是正确的,但我的C程序在输出中只显示零

20jt8wwn  于 2023-03-29  发布在  其他
关注(0)|答案(2)|浏览(127)

我的代码是正确的,我猜。然而,对于工资单,输出只显示零,并没有给予正确的输出。我在代码块编译。

#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给的代码和我写的代码完全相同。

kqlmhetl

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)
下面的应该可以工作(但需要更好地格式化)。

#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= 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;
}
3ks5zfa0

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的值,而不是分配给它们。
也许你想写

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;
}

更正程序并查看输入的值。
几点建议:

  • 请不要在学习的初始阶段使用chatgpt,在使用chatGPT之前,请自己学习并了解基础知识。
  • 在为变量赋值后使用变量,例如使用totalsalary = 0.0f
  • 欢迎来到编程世界

相关问题