0703_第03章_顺序结构与输入输出语句.ppt
文本预览下载声明
4.5 格式输入与输出 (一).格式输入函数 函数作用:按照变量在内存的地址将变量值存 进去。 一般格式:scanf(格式控制,地址表列) 同printf函数 是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址 4.5 格式输入与输出 例4.9 用scanf函数输入数据。#includestdio.hvoid main(){int a,b,c;scanf(“%d%d%d”,a,b,c);printf(“%d,%d,%d\n”,a,b,c);} 运行情况:3 4 5 (输入a,b,c的值)3,4,5 (输出a,b,c的值) a在内存中的地址 是地址运算符 4.5 格式输入与输出 说明: 对unsigned型变量所需要的数据,可以用%u,%d或%o,%x格式输入。 可以指定输入数据所占的列数,系统自动按它截取所需数据。 如果在%后有一个“*”附加说明符,表示跳过它指定的列数。 输入数据时不能规定精度。 4.5 格式输入与输出 使用scanf函数时应注意的问题 : (1)scanf函数中的“格式控制”后面应当是变量地址,而不应 是变量名。 (2) 如果在“格式控制”字符串中除了格式说明以外还有其他字符, 则在输入数据时在对应位置应输入与这些字符相同的字符。 (3) 在用“%c”格式输入字符时,空格字符和“转义字符”都作为 有效字符输入 (4) 在输入数据时,遇以下情况时认为该数据结束。 ① 遇空格,或按“回车”或“跳格”(Tab)键; ② 按指定的宽度结束,如“%3d”,只取3列; ③ 遇非法输入。 4.6 顺序结构程序设计举例 例4.10 输入三角形的三边 长,求三角形面积。 假设:三个边长a,b,c能构 成三角形。 已知面积公式: area= s=(a+b+c)*0.5 开始 输入三边长 计算s 计算面积 结束 4.6 顺序结构程序设计举例 #includestdio.h#includemath.hvoid main(){float a,b,c,s,area;scanf(“%f,%f,%f,a,b,c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“a=%7.2f, b=%7.2f, c=%7.2f, s=%7.2f\n”,a,b,c,s);printf(“area=%7.2f\n”,area);} 数学函数库 因为要用到其中的sqrt函数 运行情况:3,4,6a= 3.00, b= 4.00, c= 6.00, s= 6.50area= 5.33 4.6 顺序结构程序设计举例 例4.11 从键盘输入一个大写字母,要求改用小写字母输出。#include stdio.h void main(){ char cl,c2; cl=getchar(); printf(″%c,%d\n″,cl,cl); c2=cl+32; printf(″%c,%d\n″,c2,c2);} 运行情况:A↙A,65a,97 4.6 顺序结构程序设计举例 例4.12 求ax2+bx+c=0方程的根。 a,b,c由键盘输入,设 >0。众所周知,一元二次方程式的根为x1= x2= 可以将上面的分式分为两项:p= , q= x1=p+q, x2=p-q 4.6 顺序结构程序设计举例 #include stdio.h#include math.hvoid 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=%5.2f\nx2=%5.2f\n,x1,x2);} 运行情况:a=1,b=3,c=2↙x1=-1.00x2=-2.00 数据结构 基本数据结构 [常量,变量](数据类型),运算符,表达式 --注意三者之间的关系 复杂数据结构(数组,指针,结构,联合) 三大程序结构(顺序,分支,循环) 模块化(函数) 结构化程序设计
显示全部