c语言程序 调错 运行出负数

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:10:37
企业发放的奖金根据利润提成。利润(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%提成。该公司共十人,从键盘输入当月利润,求每个人应发放奖金总数?
void main()
{
long int x1,x2,x4,x6,x10,x;
int i;
long int a[10];
i=1;
while(i<=10)
{
scanf("%d",&a[i]);
i++;
}
x1=100000*0.1;
x2=x1+100000*0.075;
x4=x2+200000*0.05;
x6=x4+200000*0.03;
x10=x6+400000*0.015;
for(i=1;i<=10;i++)
{
if(a[i]<=100000)
x=a[i]*0.1;
else if(a[i]<=200000)
x=x1+(a[i]-100000)*0.075;
else if(a[i]<=400000)
x=x2+(a[i]-200000)*0.05;
else if(a[i]<=600000)
x=x4+(a[i]-400000)*0.03;
else if(a[i]<=1000000)
x=x6+(a[i]-600000)*0.015;
else
x=x10+(a[i]-1000000)*0.01;
printf("x=%ld\n",x);
}
}
先谢了

void main()
{
long int x1,x2,x4,x6,x10,x;
long int m;
printf("please input this month's profit:\n");
scanf("%ld",&m);
x1=100000*0.1;
x2=x1+100000*0.075;
x4=x2+200000*0.05;
x6=x4+200000*0.03;
x10=x6+400000*0.015;
if(m<=100000)
x=m*0.1;
else if(m<=200000)
x=x1+(m-100000)*0.075;
else if(m<=400000)
x=x2+(m-200000)*0.05;
else if(m<=600000)
x=x4+(m-400000)*0.03;
else if(m<=1000000)
x=x6+(m-600000)*0.015;
else
x=x10+(m-1000000)*0.01;
printf("x=%ld\n",x);
getchar();
getchar();
}

你这里的x应该是个实型,而不应该是整型。

long int x1,x2,x4,x6,x10,x;
int i;
long int a[10];
i=1;
while(i<=10)
{
scanf("%d",&a[i]);
改为float int x1,x2,x4,x6,x10,x;
int i;
float a[10];
i=1;
while(i<=10)
{
scanf("%f",&a[i]