C语言第四章.docx
- 文档编号:7319432
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:11
- 大小:54.80KB
C语言第四章.docx
《C语言第四章.docx》由会员分享,可在线阅读,更多相关《C语言第四章.docx(11页珍藏版)》请在冰豆网上搜索。
C语言第四章
第四章(p111)选择结构程序设计
4、有3个整数a,b,c由键盘输入,输出其中的最大数。
解析:
要求三个数中的最大的数,可以利用if条件语句先进行两个数的比较,在用这两个数中最大的数与第三个数进行比较。
编写程序如下:
#include
main()
{
inta,b,c,max;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
if(c>a)
max=c;
else
max=a;
elseif(c>b)
max=c;
else
max=b;
printf("Themaxnumberis%d",max);
getch();
}
当输入三个数1,2,3后的运行结果如下:
5、从键盘输入一个小于1000的正数,要求输出他的平方根(如平方根不是整数,则输出其整数部分)。
要求在输入数据后先对其进行检查是否为小于1000的正数,若不是则要求重新输入。
解析:
首先对输入的数x进行检查是否满足:
1000>x>0如果不满足则输出提示信息并要求重新输入,若满足则输出其平方根,如平方根不是整数,则输出其整数部分。
编写程序如下:
#include
#include
main(){
floatx;
printf("Placeinputanumberbetween0and1000\n");
scanf("%f",&x);
if(1000>x>1e-10)
printf("%2.0f\n",sqrt(x));
else
{
printf("Pleaseretype\n");
}
printf("pressanykey...");
getch();
}
输入990时程序执行结果如下:
输入1200时的执行结果如下:
6、有一个函数:
x(x<1)
y=2x-1(1≤x<10)
3x-11(x≥10)
写程序,输入x的值,输出y对应的值。
编写程序如下:
#include
main(){
floatx;
printf("placeinputx:
\n");
scanf("%f",&x);
if(x<1)
printf("y=%2.1f\n",x);
if(10>x>=1)
printf("y=%2.1f\n",2*x-1);
if(x>=10)
printf("y=%2.1f\n",3*x-11);
printf("pressanykey...");
getch();
}
X=0时的运行结果为:
X=9时的运行结果为:
X=50时的运行结果为:
8、给出一个百分制成绩,要求输出成绩等级为‘A’、‘B’、‘C’、‘D’、‘E’。
90分以上为A,80-89分为‘B’、70~79分为‘C’、60~69分为‘D’、60分一下为’E’。
编写程序如下:
#include
intmain(){
intgrade,c;
printf("placeinputthegrade:
\n");
scanf("%d",&grade);
c=grade/10;
printf("thisgread'srankis:
");
switch(c){
case9:
printf("A\n");break;
case8:
printf("B\n");break;
case7:
printf("C\n");break;
case6:
printf("D\n");break;
default:
printf("E\n");
}
printf("perssanykey...");
getch();
}
当输入成绩为66时的运行结果为:
当输入成绩为10时的运行结果为:
9、给一个不多于5位的正整数,要求:
①求出它是几位数;
②分别输出每一位数;
③按照逆序输出各位数字,例如原来为123,应输出321;
程序如下:
#include
main(){
intx,a,b,c,d,e;
printf("placeinputaintnumberx(x<100000):
\n");
scanf("%d",&x);
if(x/10==0){
printf("Thisisanumberof1\n");
printf("Everyfiguresare:
");
printf("%d\n",x);
printf("Inordertocounteroutput:
");
printf("%d\n",x);
}
elseif(x/100==0){
b=x/10;
a=x-10*b;
printf("Thisisanumberof2\n");
printf("Everyfiguresare:
");
printf("%d,%d\n",b,a);
printf("Inordertocounteroutput:
");
printf("%d%d\n",a,b);
}
elseif(x/1000==0){
c=x/100;
b=(x-100*c)/10;
a=x-100*c-10*b;
printf("Thisisanumberof3\n");
printf("Everyfiguresare:
");
printf("%d,%d,%d\n",c,b,a);
printf("Inordertocounteroutput:
");
printf("%d%d%d\n",a,b,c);
}
else{
d=x/1000;
c=(x-1000*d)/100;
b=(x-1000*d-100*c)/10;
a=x-1000*d-100*c-10*b;
printf("Thisisanumberof4\n");
printf("Everyfiguresare:
");
printf("%d,%d,%d,%d\n",d,c,b,a);
printf("Inordertocounteroutput:
");
printf("%d%d%d%d\n",a,b,c,d);
}
printf("pressanykey...");
getch();
}
输入x=1234时的运行结果如下:
输入x=9时的运行结果如下:
10、企业发放的奖金根据利益提成…
(1)用if语句编写程序;
编写程序如下:
#include
main(){
floati,j;
printf("placeinputmarginI:
");
scanf("%f",&i);
if(100000>=i>0)
j=0.1*i;
elseif(200000>=i>100000)
j=10000+(i-100000)*0.075;
elseif(400000>=i>200000)
j=17500+(i-200000)*0.05;
elseif(600000>=i>400000)
j=27500+(i-400000)*0.03;
elseif(1000000>=i>600000)
j=33500+(i-600000)*0.015;
else
j=39500+(i-1000000)*0.01;
printf("thegrodeis%f\n",j);
printf("pressnaykey...");
getch();
}
输入利润为90000时的运行结果如下:
输入利润为1500000时的运行结果如下:
(2)用switch语句编写程序;
编写程序如下:
#include
main(){
floati,j;
intc;
printf("placeinputmarginI:
");
scanf("%f",&i);
c=i/100000;
switch(c){
case0:
j=0.1*i;break;
case1:
j=10000+(i-100000)*0.075;break;
case2:
case3:
j=17500+(i-200000)*0.05;break;
case4:
case5:
case6:
j=27500+(i-400000)*0.03;break;
case7:
case8:
case9:
case10:
j=33500+(i-600000)*0.015;break;
default:
j=39500+(i-1000000)*0.01;
}
printf("thegrodeis%f\n",j);
printf("pressanykey...");
getch();
}输入利润为90000时程序运行结果如下:
输入利润为1500000时程序运行结果如下:
11、输入四个整数,要求按照有小到的的顺序输出;
编写程序如下:
#include
main(){
inta,b,c,d,t;
printf("placeinputfournumber:
");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("\n\na=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(a>d)
{t=a;a=d;d=t;}
if(b>c)
{t=b;b=c;c=t;}
if(b>d)
{t=b;b=d;d=t;}
if(c>d)
{t=c;c=d;d=t;}
printf("\nTheresultis:
\n");
printf("\n%d%d%d%d\n",a,b,c,d);
printf("\npressanykey...");
getch();
}
输入四个数9,5,7,2时的运行结果如下:
12、有四个圆塔,圆心分别为(2,2)、(2,-2)、(-2,2)、(-2,-2),圆半径为1.这四个塔的高度为10米。
塔以外无建筑物。
今输入一个点的坐标,求该点的建筑物高度。
解析:
在本题中首先应该要求输入一个点的坐标(x,y),然后判断该点到各塔心的距离d1,d2,d3,d4,如果该点到各塔心的距离都小于1,则该点在建筑物内,输出其高度h为10,负责输出h=0;
编写程序如下:
#include"stdio.h"
main(){
inth=10;
floatx,y,x1=2,y1=2,d1,d2,d3,d4;
printf("pleaseinputa(x,y)\n");
scanf("%f,%f",&x,&y);
d1=(x-x1)*(x-x1)+(y-y1)*(y-y1);
d1=(x-x1)*(x-x1)+(y+y1)*(y+y1);
d1=(x+x1)*(x+x1)+(y-y1)*(y-y1);
d1=(x+x1)*(x+x1)+(y+y1)*(y+y1);
if(d1>1&&d2>1&&d3>1&&d4>1)
h=0;
printf("Theheghtofhispointis%d\n",h);
printf("pressanykey...");
getch();
}
输入(1,1)后程序运行结果为:
输入(0.1,0.1)后程序运行结果为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第四