简单c语言问题 跪求大神解析

#include<stdio.h>intmain(){floatl,j;printf("请输入当月利润I=");scanf("%f",&l);if(l<100000)j=... #include<stdio.h>
int main( )
{
float l,j;
printf("请输入当月利润I=");
scanf("%f",&l);
if(l<100000) j=0.1*l;
else if(100001<l<200000) j=0.075*l+2500;
else if(200001<l<400000) j=0.05*l+7500;
else if(400001<l<600000) j=0.03*l+15500;
else if(600001<l<1000000) j=0.015*l+24500;
else j=0.01*l+29500;
printf("当月应发奖金数=%.0f\n",j);
return 0;
}
把这个用switch语句重做一下

#include<stdio.h>
int main()
{
float x,y,d1,d2,d3,d4,h;
printf("请输入任意坐标");
scanf("(%f,%f)",&x,&y);
d1=(x-2)*(x-2)+(y-2)*(y-2);
d2=(x+2)*(x+2)+(y-2)*(y-2);
d3=(x-2)*(x-2)+(y+2)*(y+2);
d4=(x+2)*(x+2)+(y+2)*(y+2);
if(d1>1&&d2>1&&d3>1&&d4>1) h=10;
else h=0;
printf("塔高度=%0.f米\n",h);
return 0;
}
这个编译没问题 但无论输入什么结果永远是10米
#include<stdio.h>
int main()
{
float x,y;
printf("请输入任意坐标");
scanf("(%f,%f)",&x,&y);
if((1<=x&&x<=3)&&(1<=y&&y<=3)) printf("塔高度h=10m\n");
else if ((-1<=x&&x<=-3)&&(1<=y&&y<=3)) printf("塔高度h=10m\n");
else if ((1<=x&&x<=3)&&(-1<=y&&y<=-3)) printf("塔高度h=10m\n");
else if ((-1<=x&&x<=-3)&&(-1<=y&&y<=-3)) printf("塔高度h=10m\n");
else printf("塔高度h=0m\n");
return 0;
}
这个错误我也不知道
展开
 我来答
White_MouseYBZ
2015-11-09 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6650万
展开全部

提如下建议:

(一)第一宗代码改如下就可以达到题目要求,但实际上还是以if分支做为好。 

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    float l,j;
    printf("请输入当月利润I=");
    scanf("%f",&l);
    switch(int(l/100000)){
        case 0:
            j=0.1*l;
            break;
        case 1:
            j=0.075*l+2500;
            break;
        case 2: case 3:
            j=0.05*l+7500;
            break;
        case 4: case 5:
            j=0.03*l+15500;
            break;
        case 6: case 7: case 8: case 9:
            j=0.015*l+24500;
            break;
        default:
            j=0.01*l+29500;
            break;
    }
    printf("当月应发奖金数=%.0f\n",j);
    return 0;
}

(二)第二宗代码的明显问题是应该把scanf("(%f,%f)",&x,&y);中""中的()删除,写成scanf("%f,%f",&x,&y);才对。

(三)第三宗代码的错误与第二宗相同。

改了后想必会有进展。有问题再问。

宇哥受命于天
2015-11-09 · TA获得超过446个赞
知道小有建树答主
回答量:111
采纳率:50%
帮助的人:43.4万
展开全部

  1.

#include<stdio.h>
int main( )
{
    float l,j;
    printf("请输入当月利润I=");
    scanf("%f",&l);

    switch((int)l/100000)
    {
    case 0:
        j=0.1*l;
        break;

    case 1:
        j=0.075*l+2500;
        break;

    case 2:
    case 3:
        j=0.05*l+7500;
        break;

    case 4:
    case 5:
        j=0.03*l+15500;

    case 6:
    case 7:
    case 8:
    case 9:
        j=0.015*l+24500;
        break;

    default:
        j=0.01*l+29500;
    }

    printf("当月应发奖金数=%.0f\n",j);
    return 0;
}

  2.

  观察一下你的d,可知d2、d3永远不可能小于1.而d1,保证1.5<x<2即可(a方+b方<=1自己解)。同理,d4也可以。不是你程序的问题,只是你测试的数据太弱了。

  输入:(2,2)、(1.5,1.5)、(-1.9,-1.9)结果0;


  3.

  这个没看懂什么意思,你追问吧。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhouxiao29873
2015-11-09 · TA获得超过140个赞
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:62.9万
展开全部
题目和答题的内容是两码事好不; 哦 3题 啊 标个数字都懒

#include<stdio.h>
int main( )
{
float L,j;
printf("请输入当月利润I=");
scanf("%f",&L);
switch((int)L/100000)
{
case (0):
j=0.1*l;
break;
case (1):
j=0.075*l+2500;
break;
case (2):
case (3):
j=0.05*l+7500;
break;
case (4):
case (5):
j=0.03*l+15500;
break;
case (6):
case (7):
case (8):
case (9):
j=0.015*l+24500;
break;
default:
j=0.01*l+29500;
break;

}
printf("当月应发奖金数=%.0f\n",j);
return 0;
}
把第一题做好了,刷新发现已经有人做好了。 …………
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式