c语言中bonus,C语言中的函数

发布时间:2022-11-27

本文目录一览:

  1. 关于C语言的一个问题
  2. c语言算奖金的小问题
  3. 用c语言实现下列要求
  4. C语言小白学习过程中的问题
  5. c语言错误

关于C语言的一个问题

你好!! 你定义的变量是 long 类型,在计算的时候,却使用小数在计算,类型不匹配,数据会丢失 你把 long 类型改成 double 类型,输入类型 %ld 改成 %lf 把 getch 函数改成 getchar ,让程序停住 完整的修改后代码:

#include<stdio.h>
int main()
{
    double i;
    double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
    printf("input lirun:\n");
    scanf("%lf", &i);
    bonus1=100000*0.1;
    bonus2=bonus1+100000*0.075;
    bonus4=bonus2+200000*0.05;
    bonus6=bonus4+200000*0.03;
    bonus10=bonus6+400000*0.015;
    if(i=100000)
        bonus=i*0.1;
    else if(i=200000)
        bonus=bonus1+(i-100000)*0.075;
    else if(i=400000)
        bonus=bonus2+(i-200000)*0.02;
    else if(i=600000)
        bonus=bonus4+(i-400000)*0.03;
    else if(i=1000000)
        bonus=bonus6+(i-600000)*0.015;
    else
        bonus=bonus10+(i-1000000)*0.01;
    printf("bonus=%lf\n", bonus);
    getchar();
    return 0;
}

c语言算奖金的小问题

#include<iostream.h>
int main()
{
    long int i;
    double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
    bonus1=100000*0.1;
    bonus2=bonus1+100000*0.075;
    bonus4=bonus2+200000*0.05;
    bonus6=bonus4+400000*0.03;
    bonus10=bonus6+600000*0.015;
    cin >> i;
    if(i=100000)
        bonus=i*0.1;
    else if(i=200000 && i=100000)
        bonus=bonus1+(i-100000)*0.075;
    else if(i=400000 && i=200000)
        bonus=bonus2+(i-200000)*0.05;
    else if(i=600000 && i=400000)
        bonus=bonus4+(i-400000)*0.03;
    else if(i=1000000 && i=600000)
        bonus=bonus6+(i-600000)*0.015;
    else
        bonus=bonus10+(i-1000000)*0.01;
    cout << bonus << endl;
    system("PAUSE"); // 改完的
}

用c语言实现下列要求

#include<stdio.h>
int main()
{
    int i;
    double bonus,bon1,bon2,bon4,bon6,bon10;
    bon1=100000*0.1;
    bon2=bon1+100000*0.075;
    bon4=bon2+100000*0.05;
    bon6=bon4+100000*0.03;
    bon10=bon6+400000*0.015;
    printf("请输入当月利润i:");
    scanf("%d", &i);
    printf("i=%d\n", i);
    if(i=100000){
        bonus=i*0.1;
    }else if(i=200000){
        bonus=bon1+(i-100000)*0.075;
    }else if(i=400000){
        bonus=bon2+(i-200000)*0.05;
    }else if(i=600000){
        bonus=bon4+(i-400000)*0.03;
    }else if(i=1000000){
        bonus=bon6+(i-600000)*0.015;
    }else{
        bonus=bon10+(i-1000000)*0.01;
    }
    printf("奖金总数为:%10.2f\n", bonus);
    return 0;
}

【答题不易,请采纳谢谢】

C语言小白学习过程中的问题

不是溢出,是bonus这个变量没有初始化,profit的值是通过scanf用户输入的,但是bonus没有初始化,当profit=200000时,会执行bonus=bonus+(profit-100000.0)*0.075这句代码,因为bonus变量没有初始化,结果就会很奇怪(数值非常大或者其他的情况)。除了这个问题以外scanf和printf函数的调用也有些小问题,profit变量是double类型的,scanf或者printf遇到double类型的应该用%g或者%lf而不是%f,%f是用于float类型变量的,用%f会有编译器警告(能编译成功但是有警告),而且数据也会不准确。

c语言错误

题目:企业发放的奖金根据利润提成。利润(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. 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
  2. 程序源代码:
#include "stdio.h"
void main()
{
    long int i;
    double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
    bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
    bonus4=bonus2+200000*0.5;
    bonus6=bonus4+200000*0.3;
    bonus10=bonus6+400000*0.15;
    scanf("%ld", &i);
    if(i=100000)
    {
        bonus=i*0.1;
    }
    else if(i=200000)
    {
        bonus=bonus1+(i-100000)*0.075;
    }
    else if(i=400000)
    {
        bonus=bonus2+(i-200000)*0.05;
    }
    else if(i=600000)
    {
        bonus=bonus4+(i-400000)*0.03;
    }
    else if(i=1000000)
    {
        bonus=bonus6+(i-600000)*0.015;
    }
    else
    {
        bonus=bonus10+(i-1000000)*0.01;
    }
    printf("bonus=%d", bonus);
}