分支结构程序设计

03分支结构程序设计(二)已完成

1【程序题】

有一个分段函数,分为3段:①x<1时,y=x;②1≤x<10时,y=2x-1;③x≥10时,y=3x-11。

要求:用户在“x=”的提示符后输入x的值,程序用“y=A.BC”的形式输出y的值;输出时y的值保留2位小数。

运行结果:

//Editor:ApophisJ
//Date:2022年10月07日
#include <stdio.h>

int main()
{
    float x, y;
    printf("x=");
    scanf("%f", &x);
    if (1 > x)
    {
        y = x;
    }
    else if (1 <= x && 10 > x)
    {
        y = (2 * x) - 1;
    }
    else if (10 <= x)
    {
        y = (3 * x) - 11;
    }
    printf("y=%.2f", y);
    return (EOF);
}

2【程序题】

4个数“升序”输出:在程序给出的提示“a,b,c,d:”后面,用户输入4个整数。程序给出这4个数的“升序”排列。 程序的2次运行结果:

我的答案:

//Editor:ApophisJ
//Date:2022年10月07日
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    int i, a[4], min, temp;
    printf("a,b,c,d:");
    for (i = 0;i <= 3;i++)
        scanf("%d", &a[i]);
    for (i = 0;i <= 3;i++)
    {
        min = a[i];
        for (int j = i;j <= 3;j++)
        {
            if (a[j] < min)
            {
                temp = min;min = a[j];a[j] = temp;
            }
        }
        a[i] = min;
    }
    printf("%d,%d,%d,%d",a[0],a[1],a[2],a[3]);
}

3【程序题】

少于5位正整数逆序输出。要求:从键盘任意输入1个不多于5位的正int数,将这个数各位数字逆序输出。 如果输入了一个负数或0,程序直接结束。2次运行结果:

#include <stdio.h>
int main()
{
    int num, pie;
    printf("integer:");
    scanf("%d", &num);
    if (num <= 0)
        return 0;
    while (num / 10)
    {
        pie = num % 10;
        num = num / 10;
        printf("%d", pie);
    }
    printf("%d", num);
    return 0;
}

4【程序题】

百分制分数转换为A-E等级。要求:在程序给出的提示“score:”后面,用户输入一个百分制分数;如果用户输入的分数在[0,100]之间,程序将分数转换为成绩等级A、B、C、D、E,并输出。分数与成绩等级的对应关系是:90~100为A,80~89为B,70~79为C,60~69为D,0~59为E。 如果用户输入的分数不在[0,100]之间,程序直接结束。程序运行结果如下:

我的答案:

#include <stdio.h>

int main()
{
    int score;
    printf("score:");
    scanf("%d", &score);
    if (100 >= score && score >= 90)
        printf("A");
    else if (89 >= score && score >= 80)
        printf("B");
    else if (79 >= score && score >= 70)
        printf("C");
    else if (69 >= score && score >= 60)
        printf("D");
    else if (59 >= score && score >= 0)
        printf("E");
    else
        return 0;
    return 0;
}

5【程序题】

促销优惠。凡买50件以上(含50件)的优惠5%;买100件以上(含100件)的优惠7.5%;买300件以上(含300件)的优惠10%;500件以上(含500件)的优惠15%。 

编程实现:用户在提示符“number & price:”后面输入购买的数量和单价;程序以“total=A.XY”形式输出应付货款。

说明:货款=数量*单价*(1-折扣);数量是整数,单价和应付货款都是浮点数,输出时货款保留2位小数。

我的答案:

​

#include <stdio.h>

int main()
{
    int m;
    double p, t;
    printf("number,price:");
    scanf("%d %lf", &m, &p);
    if (m >= 50 && m < 100)
        p *= 0.95;
    else if (m >= 100 && m < 300)
        p *= 0.925;
    else if (m >= 300 && m < 500)
        p *= 0.90;
    else if (m > 500)
        p *= 0.85;
    t = p * m;
    printf("total=%.2f", t);
    return 0;
}

[点击并拖拽以移动]
​

6【程序题】

4个圆锥体建筑物。如下图,有4个圆锥体建筑物,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为1,4个塔尖距地面的高度为10。这4个圆锥体建筑物以外无其他建筑物。

要求:用户在程序给出的提示符“x,y=”后输入任一点的坐标,程序以“height=X.YY”的形式给出该点的建筑高度,其中X.YY是高度值。说明:坐标值和高度值均是浮点数,输出高度值时,保留小数点后2位有效数字。运行结果:

我的答案:

​

#include <stdio.h>

#include <math.h>

int main()
{
    double x, y;
    double height;
    printf("x,y=");
    scanf("%lf %lf", &x, &y);
    double d1, d2, d3, d4;
    d1 = sqrt(((x + 2) * (x + 2)) + ((y + 2) * (y + 2)));
    d2 = sqrt(((x + 2) * (x + 2)) + ((y - 2) * (y - 2)));
    d3 = sqrt(((x - 2) * (x - 2)) + ((y + 2) * (y + 2)));
    d4 = sqrt(((x - 2) * (x - 2)) + ((y - 2) * (y - 2)));
    if (1 >= d1&&d1>0)
        height = ((1-d1)/1) * 10;
    else if (1 >= d2&&d2>0)
        height = ((1-d2)/1) * 10;
    else if (1 >= d3&&d3>0)
        height = ((1-d3)/1) * 10;
    else if (1 >= d4&&d4>0)
        height = ((1-d4)/1) * 10;
    else if (d1 == 0 || d2 == 0 || d3 == 0 || d4 == 0)
        height = 10;
    else
        height = 0;
    printf("height=%.2lf", height);
    return 0;
}

[点击并拖拽以移动]
​

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ApophisJ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值