您的位置:

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

本文目录一览:

关于C语言的一个问题

你好!!

你定义的变量是 long 类型,在计算的时候,却使用小数在计算,类型不匹配,数据会丢失

你把 long 类型改成 double 类型,输入类型 %ld 改成 %lf

把 getch 函数改成 getchar ,让程序停住

完整的修改后代码:

#includestdio.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语言算奖金的小问题

#includeiostream.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;

cini;

if(i=100000)

bonus=i*0.1;

else if(i=200000i=100000)

bonus=bonus1+(i-100000)*0.075;

else if(i=400000i=200000)

bonus=bonus2+(i-200000)*0.05;

else if(i=600000i=400000)

bonus=bonus4+(i-400000)*0.03;

else if(i=1000000i=600000)

bonus=bonus6+(i-600000)*0.015;

else

bonus=bonus10+(i-1000000)*0.01;

coutbonusendl;

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

}

}