You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言薪资计算程序未算出Deduction与Net Income问题咨询

问题分析与代码修正

你的程序无法输出扣除额和净收入,核心是3处关键错误:

错误点1:printf滥用额外参数

所有输入提示的printf语句都多传了变量地址(比如printf("ENTER SALARY :", &salary);),printf的第一个参数是格式字符串,无占位符时不需要额外参数,这属于冗余代码。

错误点2:结果输出缺少格式占位符

最后输出扣除额和净收入时,printf没加%d整数输出格式,还错误传递了变量地址,导致程序无法打印计算后的数值。

错误点3:净收入计算逻辑错误

netincome = (salary = deduction)是赋值操作,会把扣除额覆盖到薪资变量,再赋值给净收入,完全违背“总净收入=薪资-扣除额”的逻辑,应该用减法运算符-。


修正后的代码

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int withholdingtax;
    int sss_contribution;
    int salary;
    int netincome;
    int deduction;

    printf("ENTER SALARY :");
    scanf("%d", &salary);
    printf("\n");

    printf("ENTER WITHHOLDING TAX :");
    scanf("%d", &withholdingtax);
    printf("\n");

    printf("SSS CONTRIBUTION :");
    scanf("%d", &sss_contribution);
    printf("\n");

    deduction = sss_contribution + withholdingtax;
    netincome = salary - deduction;

    printf("TOTAL DEDUCTION : %d\n", deduction);
    printf("TOTAL NET INCOME : %d\n", netincome);

    return 0;
}

修正说明

  • 移除printf中多余的变量地址参数
  • 输出结果时添加%d占位符,传入变量本身而非地址
  • 将净收入计算的赋值操作改为减法运算salary - deduction

内容的提问来源于stack exchange,提问作者Dexter Hecali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 02:35:17