题目描述
有一个函数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");
}