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

C语言输入10份薪资计算提成后如何获取最高实发工资

问题解决方法

你的猜测完全正确,当前代码仅存储了输入的原始销售薪资,后续计算最大值时也仅对原始薪资进行比较,因此无法得到实发薪资的最大值。有两种常用的解决思路:

方案1:新增数组存储所有实发薪资

适合需要后续保留、使用所有销售人员实发薪资的场景,修改点如下:

  • 新增实发薪资存储数组:int takehome[10];
  • 第一次循环计算实发薪资时,将结果存入数组对应位置
  • 第二次循环时遍历实发薪资数组比较最大值

修改后完整代码:

#include <stdio.h>
 
int main()
{
    int num[10];
    int takehome[10]; // 新增存储实发薪资的数组
    int i = 0;
    int largest;
    int com, totaltakehome;
         
    while(i < 10)
    {
        printf("Enter salesperson salary for week[%d]:", i + 1);
        scanf("%d", &num[i]);
        // 调整计算顺序避免整数除法精度损失:先乘后除
        com = num[i] * 7 / 100;
        printf("Commision is %d\n", com);
        totaltakehome = 300 + com;
        takehome[i] = totaltakehome; // 存储实发薪资
        printf("Total takehome is %d\n", totaltakehome);
        printf("\n");
        i++; // 原代码漏了i自增,会导致死循环,此处补充该逻辑
    }

    largest = takehome[0];
    i = 0;
    while(i < 10)
    {
        if(takehome[i] > largest)
        {
            largest = takehome[i];
        }
        i++;
    }

    printf("\nHighest takehome salary is : %d\n", largest);

    return 0;
}

方案2:边输入边更新最大值

如果不需要保留所有实发薪资,仅需要得到最大值,可以省去额外数组和第二次循环,在输入计算的同时直接比较更新最大值,运行效率更高:

#include <stdio.h>
 
int main()
{
    int num;
    int i = 0;
    int largest = 0;
    int com, totaltakehome;
         
    while(i < 10)
    {
        printf("Enter salesperson salary for week[%d]:", i + 1);
        scanf("%d", &num);
        com = num * 7 / 100;
        printf("Commision is %d\n", com);
        totaltakehome = 300 + com;
        printf("Total takehome is %d\n", totaltakehome);
        printf("\n");
        // 直接比较更新最大值
        if(totaltakehome > largest) {
            largest = totaltakehome;
        }
        i++;
    }

    printf("\nHighest takehome salary is : %d\n", largest);

    return 0;
}

额外优化提示

原佣金计算逻辑为num[i] / 100 *7,C语言中整数除法会向下取整,比如销售额为199时,199/100=1,最终佣金为7;调整为num[i]*7/100后,199*7=1393,1393/100=13,精度更符合7%佣金的计算要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:54:02