第05章_c程序选择结构中山大学工学院莫善军
第五章选择结构程序设计
上节课内容复****br/>格式输入:scanf(格式控制,地址表列)
格式输出: printf(格式控制,输出表列)
格式控制:将输出的数据转换为指定的格式输出。
格式说明(由%和格式字符组成,%d、%、%c)
普通字符(逗号、空格、换行符)
格式输入输出注意事项:
变量列表和地址列表
格式控制中普通字符要对应(相同、位置)
§ 顺序结构程序设计举例(续)
求ax2+bx+c=0方程的根。a,b,c由键盘输入,设>0。众所周知,一元二次方程式的根为x1= x2= 可以将上面的分式分为两项:p= , q= x1=p+q, x2=p-q
§ 顺序结构程序设计举例(续)
#include <>#include <>void main ( ) { float a,b,c,disc,x1,x2,p,q; scanf("a=%f,b=%f,c=%f",&a,&b,&c); disc=b*b-4*a*c; p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q;x2=p-q; printf("\n\nx1=%\nx2=%\n",x1,x2);}
运行情况:a=1,b=3,c=2↙x1=-x2=-
两个问题?
浮点数据存储误差?
“%C”格式输入问题?
?
无论是单精度还是双精度在存储中都分为三个部分: (Sign) : 0代表正,1代表为负 (Exponent):用于存储科学计数法中的指数数据,并且采用移位存储,指数+127 (Mantissa):尾数部分 ,小数部分
float的存储方式
双精度的存储方式
:1000 .01,*e3
: ,*e6
0 1000 0010 0000 1000 0000 0000 0000 0000
0
127+3=130
0000 1000
0
3
0000 1000
例题分析
float f = ;
double d = (double) f;
printf(“d=%f”,d);
f = ;
d = (double) f;
printf(“d=%f”,d);
输出:
2.“%C”格式输入问题?
在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入
第05章 c程序选择结构 来自淘豆网www.taodocs.com转载请标明出处.