1150-1159: 习题4-6 分段函数求值

题目描述

有一个函数y=f(x)的表达式如下:

当x<1时,y=x

当1<=x<10时,y=2x-1

当x>=10时,y=3x-11

输入x的值,输出y相应的值。

末尾换行。

输入

一个实数

输出

y=计算的结果,保留2位小数,注意末尾换行。

样例输入 

5.1

样例输出 

y=9.20
#include<stdio.h>
int main()
{
    float x,y;
    scanf("%f",&x);
    if(x<10&&x>=1)
    {
        y=2*x-1;
    }
    else
        if(x<1)
        y=x;
    else
        y=3*x-11;
    printf("y=%.2f\n",y);
}
 

1151: 习题4-8-1 百分制成绩转换为等级

题目描述

从键盘输入一百分制成绩,要求输出其所对应的等级'A', 'B', 'C', 'D'。85分以上(含)为'A',70~84分之间为'B',60~69分之间为'C',60分以下为'D'。

请用if语句实现。

输入

百分制成绩,保证成绩在0~100之间。

输出

百分制成绩所对应的等级,末尾输出换行。

样例输入 

73

样例输出 

B
#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    if(a>=85)
        printf("A\n");
    if(a>70&&a<84)
        printf("B\n");
        if(a>60&&a<69)
        printf("C\n");
        if(a<60)
        printf("D\n");
 
    return 0;
}

 

1152: 习题4-8-2 百分制成绩转换为等级

题目描述

从键盘输入一百分制成绩,要求输出其所对应的等级'A', 'B', 'C', 'D'。85分以上(含)为'A',70~84分之间为'B',60~69分之间为'C',60分以下为'D'。

请用switch语句实现。

输入

一百分制成绩

输出

百分制成绩所对应的等级,末尾换行。

样例输入 Copy

73

样例输出 Copy

B
#include<stdio.h>
int main()
{
int score;
char c;
scanf("%d",&score);
switch(score/5)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:c='D';break;
case 12:
case 13:c='C';break;
case 14:
case 15:
case 16:c='B';break;
case 17:
case 18:
case 19:
case 20:c='A';break;
}
printf("%c\n",c);
return 0;
}

 

1153: 习题4-9-1 判断正整数位数

 

题目描述

给定一个不多于5位的正整数,判断它是几位数,并将该数字输出。输出结束后换行。

注意:输入的数字要确保是一个不多于5位的正整数。

输入

一个不多于5位的正整数。

输出

输入正整数的位数,注意末尾的换行。

样例输入 Copy

1234

样例输出 Copy

4
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
int num=0;
while(a)
{num++;
a/=10;
}
printf("%d\n",num);
}

1154: 习题4-9-2 求正整数各位上的数字

 

题目描述

输入一个不多于5位的正整数,按高位到低位的顺序输出各位上的数字,末尾换行。

注意:确保输入的正整数的位数不多于5。

输入

一个不多于5位的正整数

输出

从高位到低位依次输出各位上的数字,中间以空格分隔的。

注意末尾的换行。


样例输入 Copy

2143

样例输出 Copy

2 1 4 3
#include<stdio.h>
int main()
{
int a,b=0,c;
int d[5];
scanf("%d",&a);
while(a!=0)
{c=a%10;
d[b]=c;a=a/10;b++;}
for(b-=1;b>=0;b--)
{
printf("%d ",d[b]);
}
    return 0;
}
 

 

1155: 习题4-9-3 逆序输出正整数各位上数字

 

题目描述

输入一个不多于5位的正整数,按逆序输出各位上的数字,末尾换行。

注意:确保输入的正整数的位数不多于5。

输入

一个不多于5位的正整数。

输出

逆序输出各位上的数字,中间以空格分隔。

注意末尾的换行。

样例输入 Copy

2143

样例输出 Copy

3 4 1 2
#include<stdio.h>
int main()
{
    int a,b,c,d;
    scanf("%d",&a);
    do
    {
        b=a%10;
        printf("%d ",b);
        a=a/10;
    }
    while(a!=0);
 
 
}
 

1156: 习题4-10-1 奖金计算

题目描述

某企业发放的奖金根据利润提成。利润I低于或等于100000时,奖金可提10%;利润高于100000元,低于200000元(100000<I<=200000)时,低于100000元的部分仍按10%提成,高于100000元的部分提成比例为7.5%;200000<I<=400000时,低于200000元的部分仍按上述方法提成(下同),高于200000元的部分按5%提成;400000<I<=600000元时,高于400000元的部分按3%提成;600000<I<=1000000时,高于600000元的部分按1.5%提成;I>1000000元时,超过1000000元的部分按1%提成。

从键盘输出当月利润I,求应发奖金数,奖金精确到分。

要求用if语句实现。

输入

企业利润,小数,双精度double类型

输出

应发奖金数,保留2位小数,末尾换行。

样例输入 Copy

1050

样例输出 Copy

105.00

 

#include<stdio.h>
int main()
{
    double a,b,c;
    scanf("%lf",&a);
    if(a<=100000)
        {b=a*0.1;}
    else
        if(a<=200000)
    {
        b=10000+(a-100000)*0.075;
    }
    else
        if(a<=400000)
    {
        b=100000*(0.1+0.075)+(a-200000)*0.05;
    }
    else
    if(a<=600000){b=100000*0.175+200000*0.05+(a-400000)*0.03;}
    else
        if(a<1000000)
    {
        b=100000*0.175+200000*0.09+(a-600000)*0.015;
    }
    else
    {
        b=100000*0.175+200000*0.09+400000*0.015+(a-1000000)*0.01;
    } printf("%.2f",b);
    return 0;}

 

1057-奖金计算(switch实现)

#include<stdio.h>
int main()
{
    int b;
    double a,c;
    scanf("%lf",&a);
    b=a/100000;
    switch(b)
    {
        case 0:{c=a*0.1;printf("%.2f",c);};break;
        case 1:{c=10000+(a-100000)*0.075;printf("%.2f",c);};break;
        case 2:
        case 3:{c=100000*(0.1+0.075)+(a-200000)*0.05;printf("%.2f",c);};break;
        case 4:
        case 5:{c=100000*0.175+200000*0.05+(a-400000)*0.03;printf("%.2f",c);};break;
        case 6:
        case 7:
        case 8:
        case 9: {c=100000*0.175+200000*0.09+(a-600000)*0.015;printf("%.2f",c);}   ;break;
        default:{c=100000*0.175+200000*0.09+400000*0.015+(a-1000000)*0.01;printf("%.2f",c);}
        return 0;}}
 

1158: 习题4-11 4个整数从小到大输出

题目描述

从键盘输入4个整数,要求按照由小到大的顺序输出,末尾换行。

输入

以空格分隔的四个整数。

输出

从小到大输出这4个整数,中间以空格分隔,末尾换行。

样例输入 Copy

10 7 -2 9

样例输出 Copy

-2 7 9 10

 

#include<stdio.h>
int main()
{
    int a[4],i,j,t;
    for(i=0;i<=3;i++)
        scanf("%d",&a[i]);
    for(i=0;i<3;i++)
        for(j=0;j<3-i;j++)
    {
        if(a[j]>a[j+1])
        {
            t=a[j+1];
            a[j+1]=a[j];
            a[j]=t;
        }
    }
    for(i=0;i<=3;i++)
        printf("%d\n",a[i]);
 
}
 

1159: 习题4-12 求建筑物高度

题目描述

有4个圆塔,圆心分别为(2, 2)、(-2, 2)、(-2, -2)、(2, -2),圆半径为1,如下图所示。这4个塔的高度为10米(m),塔以外无建筑物。

 

现输入任一点的坐标,求该点的建筑物高度(塔外的高度为零)。

输入

输入以圆括号括起来的两个数字,两个数字之间以逗号(,)分隔,格式如:(x,y)

如下为正确输入:

(1.5,1.9)

浮点型变量,请定义为float类型。

输出

该建筑物的高度,末尾换行。

样例输入 Copy

(1.8,1.9)

样例输出 Copy

10

提示

根据输入的点的坐标,判断该点在圆内,还是在圆外。在圆内的话,建筑物的高度就是10;否则,建筑物的高度就是0.

#include<stdio.h>
#include<math.h>
int main()
{
    float a,b,c,d,e,f,c1,d1,e1,f1;
    scanf("(%f,%f)",&a,&b);
    c=(a-2)*(a-2)+(b-2)*(b-2);
    d=(a+2)*(a+2)+(b-2)*(b-2);
    e=(a+2)*(a+2)+(b+2)*(b+2);
    f=(a-2)*(a-2)+(b+2)*(b+2);
    c1=sqrt(c);
    d1=sqrt(d);
    e1=sqrt(e);
    f1=sqrt(f);
    if(c1<=1||d1<=1||e1<=1||f1<1)
        printf("10\n");
    else
        printf("0\n");
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

°PJ想做前端攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值