【例4.6】输入三角形的三边长,求三角形面积。
为简单起见,设输入的三边长a,b,c能构成三角形。求三角形面积的公式为:s=sqrt (p*(p-a)*(p-b)*(p-c)),其中p=(a+b+c)/2,sqrt为求平均。
据此编写程序如下:
#include<math.h> /*由于要调用数学函数库中的函数,所以必须用#include将数学函数库的头文件math.h包含进程序*/
main()
{floata,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c)); /*sqrt()求平方根的函数*/
printf("a=%7.2f,b=%7.2f,c=%7.2f\n",a,b,c);
printf("area=%8.3f\n",area);
}
a=3.00,b=4.00,c=6.00
area=5.333
【例4.7】从键盘输入一个大写字母,要求改用小写字母输出。
#include<stdio.h>
main()
{charc1,c2;
c1=getchar(); /*输入大写字符*/
printf("%c,%d\n",c1,c1);
c2=c1+32; /*转变为小写*/
printf("%c,%d\n",c2,c2); /*输出*/
}
输入:A
输出:A,65
a,97
程序的作用是将大写字母A转化成小写字母a。‘A’的ASCII码为65,而 ‘a’为97。从ASCII代码表中可以看出,每一个大写字母比它相应的小写字母的ASCII码小32,C语言允许字符数据直接进行算术运算,即 ‘A’+32会得到整数97,即 ‘a’的ASCII码。
【例4.8】求ax2+bx+c=0方程的根。a,b,c由键盘输入,设b2-4ac>0。
一元二次方程的根为:
x1=p+q,x2=p-q
程序如下:
#include<math.h>
main()
{floata,b,c,disc,p,q,x1,x2;
scanf("%f%f%f",&a,&b,&c); /*输入a,b,c*/
disc=b*b-4*a*c; /*计算disc的值/
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q;x2=p-q; /*计算2个方程的根*/
printf("x1=%f\nx2=%f\n",x1,x2); /*输出*/
}
132
x1=-1.000000
x2=-2.000000
【例4.9】输入任意三个整数,求它们的和及平均值。
/*功能:设计一个顺序结构程序,求三个整数的和及平均值。*/
main()
{intnum1,num2,num3,sum;
floataver;
printf("Pleaseinputthreenumbers:");
scanf("%d,%d,%d",&num1,&num2,&num3);/*输入三个整数*/
sum=num1+num2+num3; /*求累计和*/
aver=sum/3.0; /*求平均值*/
printf("num1=%d,num2=%d,num3=%d\n",num1,num2,num3);
printf("sum=%d,aver=%7.2f\n",sum,aver);
}
思考题:能否将 “aver=sum/3.0;”中的 “3.0”改为 “3”?
在顺序结构程序中,一般包括以下几个部分:
1)程序开头的编译预处理命令。
在程序中要使用标准函数 (又称库函数),除printf()和scanf()外,其他都必须使用编译预处理命令,将相应的头文件包含进来。
2)顺序结构程序的函数体中,是完成具体功能的各个语句和运算,主要包括:
①变量类型的说明。
②提供数据语句。
③运算部分。
④输出部分。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。