@littlefool 发表于 2021-10-12 15:06:28

企业利润计算,不知道错在哪里

题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。


提示
int main()
{
        int conus, conus1, conus2, conus4, conus6, conus100;//声明变量,总提成,和各个阶段的提成。
        long intmoney;
        conus1 = 100000 * 0.1;
        conus2 = conus1 + 100000 * 0.75;
        conus4 = conus2 + 200000 * 0.5;
        conus6 = conus4 + 200000 * 0.3;
        conus100 = conus6 + 400000 * 0.15;

        printf("please enter the profit generater\n");
        scanf("%ld", &money);
        if (money < 100000)//通过输入的金额来判断所得到的提成
        {
                conus = money * 0.1;
        }
        else if (conus <= 200000)
        {
                conus = conus1 + (money - 100000) * 0.75;
        }
        else if (money <= 400000)
        {
                conus = conus2 + (money - 200000) * 0.5;
        }
        else if (money <= 600000)
        {
                conus = conus4 + (money - 400000) * 0.3;

        }
        else if (money <= 1000000)
        {
                conus = conus6 + (money - 600000) * 0.15;
        }

        else
        {
                conus = conus100 + (money - 1000000) * 0.1;
        }
        printf("Please enter the bonus generated is:%d", conus);//打印出来
        return 0;
}

运行之后提示:

村里小黑 发表于 2021-10-12 15:10:41

本帖最后由 村里小黑 于 2021-10-12 15:16 编辑

看不到你说的提示内容,还有就是你是不是忘记写头文件了

@littlefool 发表于 2021-10-12 15:15:39

提示返回值被忽略"scanf"
使用未初始化的内存conus

@littlefool 发表于 2021-10-12 15:20:46

村里小黑 发表于 2021-10-12 15:10
看不到你说的提示内容,还有就是你是不是忘记写头文件了


提示返回值被忽略"scanf"
使用未初始化的内存conus

头文件写的,只是没有复制出来

傻眼貓咪 发表于 2021-10-12 15:27:55

#include <stdio.h>

int main(){
    int profit;
    float a, bonus;
   
    int target = {1000000, 600000, 400000, 200000, 100000, 0};
    float interest = {0.01, 0.015, 0.03, 0.05, 0.075, .1};
   
    scanf("%d", &profit);
   
    for(int i=0; i<6; i++){
      if(profit>target){
            a = profit-target;
            bonus += a*interest;
            profit -= a;
      }
    }
   
    printf("%.2f", bonus);
   
    return 0;
}

此方星河 发表于 2021-10-12 15:29:50

只发现了这个问题,原因是couns没有初始化
#include <stdio.h>

int main()
{
      int conus = 0, conus1, conus2, conus4, conus6, conus100;//声明变量,总提成,和各个阶段的提成。
      long intmoney;
      conus1 = 100000 * 0.1;
      conus2 = conus1 + 100000 * 0.75;
      conus4 = conus2 + 200000 * 0.5;
      conus6 = conus4 + 200000 * 0.3;
      conus100 = conus6 + 400000 * 0.15;

      printf("please enter the profit generater\n");
      scanf("%ld", &money);
      if (money < 100000)//通过输入的金额来判断所得到的提成
      {
                conus = money * 0.1;
      }
      else if (conus <= 200000)
      {
                conus = conus1 + (money - 100000) * 0.75;
      }
      else if (money <= 400000)
      {
                conus = conus2 + (money - 200000) * 0.5;
      }
      else if (money <= 600000)
      {
                conus = conus4 + (money - 400000) * 0.3;

      }
      else if (money <= 1000000)
      {
                conus = conus6 + (money - 600000) * 0.15;
      }

      else
      {
                conus = conus100 + (money - 1000000) * 0.1;
      }
      printf("Please enter the bonus generated is:%d", conus);//打印出来
      return 0;
}

村里小黑 发表于 2021-10-12 15:37:48

@littlefool 发表于 2021-10-12 15:20
提示返回值被忽略"scanf"
使用未初始化的内存conus



先把conus赋个初始值0,试一下看看是否还报错,如果不行的话再把scanf改成scanf_s再试一下

sunyt 发表于 2021-10-12 16:29:22

运行后提示的东西呢?
页: [1]
查看完整版本: 企业利润计算,不知道错在哪里