第四章顺序结构程序设计.ppt
文本预览下载声明
使用getchar函数还应注意几个问题: getchar函数只能接受单个字符,输入数字也按字符处理。 输入多于一个字符时,只接收第一个字符,多余的字符存入到键盘的缓冲区,若有下一个getchar函数语句,由直接从键盘的缓冲区读一个字符。 使用本函数前必须包含文件“stdio.h”。 注 意: %ld表示长整型输出; %o,%x,%u均输出无符号整数; 整数(0~255)均可以以%d形式输出; 单精度型浮点数以%f形式输出时,小数6位,有效数字7位; 双精度型浮点数以%f形式输出时,小数6位,有效数字16位; %e形式输出时小数6位,指数5位,其中e占1位,指数符号占1位,指数3位,并以规范化指数形式输出。 如1.234560e+002。 (2) scanf中要求给出变量地址,如给出变量名则会出错。 如 scanf(%d,x);是非法的,应改为scnaf(%d,x);才是合法的。 (3)在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。 (4)在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。 使用scanf函数还必须注意以下几点: 若输入为: d e f 则把d赋予a, ‘ ’赋予b,e 赋予c。 只有当输入为:def时,才能把d赋于a,e赋予b,f赋予c。 如果在格式控制中加入空格作为间隔,如scanf (“%c %c %c”,a,b,c);则输入时各数据之间要加空格。 例如: main() { char a,b,c; printf(input character a,b,c\n); scanf(%c%c%c,a,b,c); printf(%c%c%c\n,a,b,c); } (5)如果格式控制串中有非格式字符则输入时也要输入该非格式字符。 例如: scanf(%d,%d,%d,a,b,c); 其中用非格式符“ , ”作间隔符,故输入时应为: 5,6,7 又如: scanf(a=%d,b=%d,c=%d,a,b,c); 则输入应为 a=5,b=6,c=7 使用scanf函数还必须注意以下几点: (6)如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。 void main() { int a; printf(input a number\n); scanf(%d,a); printf(%ld,a); } 使用scanf函数还必须注意以下几点: 由于输入数据类型为整型,而输出语句的格式串中说明为长整型,因此输出结果和输入数据不符。 void main() { long a; printf(input a long integer\n); scanf(%ld,a); printf(%ld,a); } 改动后程序如下: 运行结果为: input a long integer 1234567890 1234567890 当输入数据改为长整型后,输入输出数据相等。 顺序结构程序设计举例 例4.10 输入三角形的三边长,求三角形面积 #include math.h 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, b=%7.2f, s=%7.2f\n“,a,b,c,s); printf(area=%7.2f\n,area); } 例4.11 从键盘输入一个字母,改用小写字母输出。 #include stdio.h main() { char c1,c2; c1=getchar(); printf(%c,%d\n,c1,c1); c2=c1+32; printf(%c,%d\n,c2,c2); } 1. 程序可分为三种最基本的结构:顺序结构,选择结构/循环结构。 2. 程序中执行部分最基本的单位是
显示全部