C语言顺序结构及分支结构编程案例详解.docx
《C语言顺序结构及分支结构编程案例详解.docx》由会员分享,可在线阅读,更多相关《C语言顺序结构及分支结构编程案例详解.docx(26页珍藏版)》请在冰豆网上搜索。
![C语言顺序结构及分支结构编程案例详解.docx](https://file1.bdocx.com/fileroot1/2023-5/16/b25951fe-c3e5-4585-be53-f690fde29977/b25951fe-c3e5-4585-be53-f690fde299771.gif)
C语言顺序结构及分支结构编程案例详解
顺序结构入门——及熟悉环境
1、输出GoodMorining
答案:
#include
intmain()
{
printf("GoodMorining\n");
return0;
}
2、已知某种铅密度为11340kg/m3,求9.8厘米铅球有多少kg
这里要求:
pi的取值为3.141592657,小数用double表示,printf("%lf"输出)
输入格式:
输入格式:
仅仅一个小数
输出格式:
无
输出样例:
5.588431
答案:
#include
#definemidu11340
intmain()
{
doubler=0.049;
doublev;
doubleweigh;
v=4.0/3*3.141592657*r*r*r;
weigh=v*midu;
printf("%lf",weigh);
}
3、两个数相加
输入两个整数
输出两个整数的和
比如输入:
14
输出:
5
答案:
#include
voidmain()
{
inta,b;
intsum;
scanf("%d%d",&a,&b);
sum=a+b;
printf("%d\n",sum);
}
4、输入两个整数a,b,计算(a-b)*(a+b)
比如输入:
14
输出:
-15
答案:
#include
voidmain()
{
inta,b;
intsum;
scanf("%d%d",&a,&b);
sum=(a-b)*(a+b);
printf("%d\n",sum);
}
5、两个数相加后乘以5
输入:
两个整数
输出:
两个整数的和乘以5
比如输入:
14
输出:
25
答案:
#include
voidmain()
{
inta,b;
intsum;
scanf("%d%d",&a,&b);
sum=(a+b)*5;
printf("%d\n",sum);
}
6、已知某种铅密度为11340kg/m3,求输入球的直径(厘米数),求铅球有多少kg。
输入格式:
输入格式:
仅仅一个小数
输出格式:
输出格式:
仅仅一个小数
输入样例:
输入样例:
9.8
输出样例:
输出样例:
5.588431
答案:
#include
#definemidu11340
voidmain()
{
doubler;
scanf("%lf",&r);
doublev,m;
v=4.0/3*3.141592657*(r/200)*(r/200)*(r/200);
m=v*midu;
printf("%lf",m);
}
7、铅密度为11340kg/m3,输入外直径(cm),内径(cm),求空心球有多kg?
输入格式:
输入格式:
两个小数(空格分隔)
输出格式:
输出格式:
一个小数
输入样例;输入样例:
9.8 5.1
输出样例:
输出样例:
4.800801
答案:
#include
#definepi3.141592657
intmain()
{
doubleR,r;
intp;
p=11340;
scanf("%lf%lf",&R,&r);
doubleM,m;
M=p*4.0/3*pi*R/2*0.01*R/2*0.01*R/2*0.01;
m=p*4.0/3*pi*r/2*0.01*r/2*0.01*r/2*0.01;
printf("%lf\n",M-m);
return0;
}
8、输入一个华氏温度,要求输出摄氏温度。
公式为c=5(F-32)/9输出要求有文字说明,取位2小数。
输入:
一个华氏温度,浮点数
输出:
c=摄氏温度,(保留两位小数)
输入样例:
-40
输出样例:
c=-40.00
答案:
#include
voidmain()
{
doublec,f;
scanf("%lf",&f);
c=5*(f-32)/9;
printf("c=%0.2lf\n",c);
}
9、从1到9任选一个你喜欢的数字,先乘以3,再加上3,再乘以3,最后把个位数和十位数相加,得到结果是什么?
输入:
3
结果:
9
答案:
#include
voidmain()
{
inta,b,c,d,e;
scanf("%d",&a);
b=((a*3)+3)*3;
c=b/10;
d=b%10;
e=c+d;
printf("%d",e);
}
10、输入三个数a,b,c,表示三角形的三个边长
输出三角形面积的平方值,结果保留2位小数
p(p-a)(p-b)(p-c),其中p=(a+b+c)/2;
例如,
输入:
3.1 4.1 5.1
输出:
40.38
注意:
printf("%.2lf",double)保留2位小数
答案:
#include
voidmain()
{
doublea,b,c,p,s;
scanf("%lf%lf%lf",&a,&b,&c);
p=(a+b+c)/2;
s=p*(p-a)*(p-b)*(p-c);
printf("%.2lf",s);
}
11、求一元二次方程ax2+bx+c=0的解。
a,b,c为任意实数。
输入:
输入数据有一行,包括abc的值
输出:
(保留2位小数)x1 x2实根,且要求x1>=x2输出
提示:
计算平方根用sqrt()函数,例如y=sqrt(x) 则y就得到x的平方根
例如输入:
1.0 4.0 1.0
输出:
-0.27 -3.73
答案:
#include
#include
voidmain()
{
doublea,b,c,x,d;
doublex1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
d=sqrt(b*b-4*a*c);
x1=(-b+d)/(2*a);
x2=(-b-d)/(2*a);
if(x1>=x2)
printf("%.2lf%.2lf",x1,x2);
else
printf("%.2lf%.2lf",x2,x1);
}
12、输出一个三位数,将它反向输出。
如输入:
127
输出:
721
提示:
需要求出这个数的个、十、百位上的数字
用到的技巧就是,整数相除还是整数的办法,比如235/100就等于2
答案:
#include
intmain()
{
inta,b,c,d,e;
scanf("%d",&a);
b=a/100;
c=(a/10)-b*10;
d=a%10;
e=d*100+c*10+b;
printf("%d\n",e);
}
分支结构
13、输入3个整数,判断第一个数是不是最大的数?
例如,
输入:
3 45
输出:
0
输入:
6 1 2
输出:
1
答案一:
#include
voidmain()
{
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a>b&&a>c)
printf("1");
else
printf("0");
}
答案二:
#include
voidmain()
{
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a
printf("0\n");
else
{
if(aprintf("0\n");
else
printf("1\n");
}
}
14、输入两个实数,按由小到大的次序输出两数
输入两个单精度的实数,例如:
3.22.8
输出结果为从大到小排序,例如:
2.803.20
输出结果保留小数点后两位
答案:
#include
intmain()
{
doublea,b;
scanf("%lf%lf",&a,&b);
if(a
printf("%0.2lf%0.2lf\n",a,b);
else
printf("%0.2lf%0.2lf\n",b,a);
return0;
}
15、输入两个整数,判断其是否相等。
例如:
1)输入:
35
输出:
a!
=b
2)输入:
44
输出:
a==b
答案:
#include
voidmain()
{
inta,b;
scanf("%d%d",&a,&b);
if(a==b)
printf("a==b");
else
printf("a!
=b");
}
16、编写一个程序,输入a、b两个,输出其中最大值。
输入:
两个小数
输出:
ab其中最大的数 保留2位小数
输入样例:
10.220.3
输出样例:
20.30
答案:
#include
voidmain()
{
doublea,b;
scanf("%lf%lf",&a,&b);
if(a>b)
printf("%.2lf",a);
else
printf("%.2lf",b);
}
17、编写一个程序,输入a、b、c三个值,输出其中最大值。
输入:
一行数组,分别为abc
输出:
abc其中最大的数 保留2位小数
输入样例:
102030
输出样例:
30.00
答案一:
#include
voidmain()
{
doublea,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
if(a>b&&a>c)
printf("%.2lf\n",a);
elseif(b>a&&b>c)
printf("%.2lf\n",b);
else
printf("%.2lf\n",c);
}
答案二:
#include
voidmain()
{
inta,b,c;
doubled,e;
scanf("%d%d%d",&a,&b,&c);
d=a*1.0>b*1.0?
a*1.0:
b*1.0;
e=d*1.0>c*1.0?
d*1.0:
c*1.0;
printf("%.2lf",e);
}
18、输入一个年份,判断一个年份是否为闰年
输入:
一个正整数,比如2008
输出:
一个字母“y”或者“n”(引号不输出)
输入样例:
2008
输出样例:
y
答案一:
#include
voidmain()
{
inta;
scanf("%d",&a);
if(a%4==0&&a%100!
=0||a%400==0)
printf("y");
else
printf("n");
}
答案二:
#include
voidmain()
{
intn;
scanf("%d",&n);
if(n%100==0)
{
if(n%400==0)
printf("y\n");
else
printf("n\n");
}
else
{
if(n%4==0)
printf("y\n");
else
printf("n\n");
}
}
19、简单的计算器计算:
输入a+b能计算出其和,输入a-b能计算其差,同理乘除。
除法用"/"表示,但是若出现4/0则输出“error”,
建议使用数据类型使用float类型,“+-*/”使用char。
输出格式%.2f
输入:
1+2
输出:
3.00
输入:
1/0
输出:
error
HINT:
floata;
charb;
floatc;
scanf("%f%c%f",&a,&b,&c);
答案一:
#include
voidmain()
{
floata,b;
charop;
scanf("%f%c%f",&a,&op,&b);
switch(op)
{
case'+':
printf("%.2f",a+b);break;
case'-':
printf("%.2f",a-b);break;
case'*':
printf("%.2f",a*b);break;
case'/':
if(b!
=0)
printf("%.2f",a/b);
else
printf("error");
break;
default:
printf("");
}
}
答案二:
#include
voidmain()
{
doublea,c,d;
charb;
scanf("%lf%c%lf",&a,&b,&c);
if(b=='+')
{d=a*1.0+c*1.0;
printf("%.2lf",d);}
elseif(b=='-')
{d=a*1.0-c*1.0;
printf("%.2lf",d);}
elseif(b=='*')
{d=a*1.0*c*1.0;
printf("%.2lf",d);}
elseif(b=='/'&&c!
=0)
{d=a*1.0/c*1.0;
printf("%.2lf",d);}
elseif(b=='/'&&c==0)
printf("error");
}
20、看看你们的缘分计算出你和另一个人的关系,准的邪门了!
计算的方法很简单,将你们姓名笔划的总数作比较,以大的数字减小的
例如:
大雄想知道自己和叮当的关系是什,要将自己名字的笔划(共15划)和叮当名
字的笔划(共21划)相减(即21-15),得出的数字是6,「帮你的人」。
十分准确啊!
快来试试吧!
差值对照表:
0亲密无间
1永远和你在一起
2水火不相容
3知心朋友
4心上人
5帮你做事的人
6帮你的人
7面和心不合
8男女关系不正常
9情投意合
10关系马虎
11尊敬你的人
12爱你的人
13适合你的
14说你坏话的人
15克星
16救星
17忠心的人
18狼心狗肺的人
19单相思
20山盟海誓
21情敌
22服从你的人
23永远在一起
24伴终生
25恨你又爱你
比25大:
你俩缘分超出计算范围
答案:
#include
voidmain()
{
inta,b,c,d,e;
scanf("%d%d",&a,&b);
c=a>b?
a:
b;
d=a
a:
b;
e=c-d;
switch(e)
{
case0:
printf("亲密无间");break;
case1:
printf("永远和你在一起");break;
case2:
printf("水火不相容");break;
case3:
printf("知心朋友");break;
case4:
printf("心上人");break;
case5:
printf("帮你做事的人");break;
case6:
printf("帮你的人");break;
case7:
printf("面和心不合");break;
case8:
printf("男女关系不正常");break;
case9:
printf("情投意合");break;
case10:
printf("关系马虎");break;
case11:
printf("尊敬你的人");break;
case12:
printf("爱你的人");break;
case13:
printf("适合你的");break;
case14:
printf("说你坏话的人");break;
case15:
printf("克星");break;
case16:
printf("救星");break;
case17:
printf("忠心的人");break;
case18:
printf("狼心狗肺的人");break;
case19:
printf("单相思");break;
case20:
printf("山盟海誓");break;
case21:
printf("情敌");break;
case22:
printf("服从你的人");break;
case23:
printf("永远在一起");break;
case24:
printf("伴终生");break;
case25:
printf("恨你又爱你");break;
Default:
printf("你俩缘分超出计算范围");
}
21、求一元二次方程ax2+bx+c=0的解。
a,b,c为任意实数。
输入:
abc
输出:
如果a为0同时b为0,则输出"Notanequation"(N大写,单词间一个空格)
如果a为0,退化一次方程,则只输出一个根的值既可以
a不为0则按以下格式输出方程的根x1和x2。
x1和x2之间有一个空格。
(1)如果x1和x2为实根,则以x1>=x2输出。
(2)如果方程是共轭复根,x1=m+ni,x2=m-ni,其中n>0。
其中x1,x2,m,n均保留2位小数。
样例输入:
123
样例输出:
-1.00+1.41i-1.00-1.41i
提示:
两个根中间有一个空格
平方根用函数sqrt(x),
并同时需要#include
保留2位小数用printf("%.2f",..)
输出i的方法printf("%0.2lf+%0.2lfi%0.2lf-%0.2lfi",你的实部,你的虚部,你的实部,你的虚部)
答案:
#include
#include
voidmain()
{
inta,b,c;//定义方程的三个参数//
doublep,m,n,x1,x2,x,y;//定义实根和虚根以及b^2-4ac的值
以及用于交换最大最小值的x,y//
scanf("%d%d%d",&a,&b,&c);
p=(b*b-4*a*c)*1.0;
if(a==0&&b==0)
printf("Notanequation");
elseif(a==0&&b!
=0)
{
x1=(c*1.0/b*1.0)*(-1);
printf("%.2lf",x1);
}
elseif(a!
=0)
{
if(p>=0)
{
x1=(-b+sqrt(p))/(2*a)*1.0;
x2=(-b-sqrt(p))/(2*a)*1.0;
x=x1>x2?
x1:
x2;
y=x1x1:
x2;
printf("%.2lf%.2lf",x,y);
}
else
{
m=(-b*1.0)/(2*a*1.0);
n=sqrt(-p)*1.0/(2*a*1.0);
if(n<0)
n=-n;
printf("%.2lf+%.2lfi%.2lf-%.2lfi",m,n,m,n);
}
}
}
22、实现符号函数求解。
输入变量为大于0的实数时,输出 1
输入变量为小于0的实数时,输出 -1
输入变量为0时,输出0
答案:
#include
voidmain()
{
inta;
scanf("%d",&a);
if(a>0)
printf("1");
elseif(a==0)
printf("0");
else
printf("-1");
}
23、输入一个双精度类型的分数,判断该分数属于哪个等级,
1)如果输入的分数不在0-100之间,输出:
error!
2)输入分数大于等于90,小于等于100,输出:
A
3)输入分数大于等于80,小于90,输出:
B
4)输入分数大于等于70,小于80,输出:
C
5)输入分数大于等于60,小于70,输出:
D
6)输入分数小于60,输出:
E
答案:
#include
voidmain()
{
floatscore;
scanf("%f",&score);
if(score<0||score>100)printf("error!
");
elseif(score>=0&&score<60)printf("E");
elseif(score<70)printf("D");
elseif(score<80)printf("C");
elseif(score<90)printf("B");
elseprintf("A");
}
24、输入三个整数,按照由小到大顺序输出出来。
例如:
输入:
12 5 8
输出:
5 8 12
答案一:
#include
voidmain()
{
inta,b,c,d,e,f,g,h;
scanf("%d%d%d",&a,&b,&c);
d=a
a:
b;
e=dd:
c;
f=a>b?
a:
b;
g=f>c?
f:
c;
if(a>e&&a{h=a;
printf("%d%d%d",e,h,g);}
elseif(b>e&&b{h=b;
printf("%d%d%d",e,h,g);}
elseprintf("%d%d%d",e,c,g);
}
答案二:
#include
intmain()