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;
}
[点击并拖拽以移动]