格式字符: 格式字符 作 用 用来输入十进制整数 用来输入8进制整数 用来输入16进制整数。 用来输入单个字符 用来输入字符串,在输入时以非空白字符开始,以第一个空白字符 结束。字符串以串结束标志"0作为其最后一个字符。 用来输入实数,可以用小数形式或指数形式输入。 与f作用相同,e与坷可以互相替代 例如: maino 对 unsigned型数据 fint a; char b; float 可以用d,ox格式输入 scanf(%d%c%, &a, &b, &c) printf(" %d, %c, %fin",a, b, c)
36 格式字符: 格式字符 作 用 d 用来输入十进制整数。 o 用来输入8进制整数。 x 用来输入16进制整数。 c 用来输入单个字符。 用来输入字符串,在输入时以非空白字符开始,以第一个空白字符 结束。字符串以串结束标志'\0'作为其最后一个字符。 f 用来输入实数,可以用小数形式或指数形式输入。 e 与f作用相同,e与f可以互相替代。 s 例如:main() {int a; char b; float c; scanf("%d%c%f", &a,&b,&c); printf("%d,%c,%f\n",a,b,c); } 对unsigned型数据 可以用d,o,x格式输入
附加格式说明字符: 字符 作 用 字母l 用于输入长整型数据,可加在格式符d、o、x、f、e前面。 字母h 对实数,表示输出n位小数;对字符串,表示截取的字符个数 m(一个正整数)指定输入数据所占宽度 表示本输入项在读入后不赋给相应的变量 例 scanf(%03d%3d",&a, &b) 若输入数据格式为:123456“则将123赋给a,456赋给b。 6: scanf("%c%c%c", &c1, &c2, &c3) 若输入数据格式为:abck则将a赋给cl,赋给c2,b赋给c3。 例 if("%od%c%f", &a, &b, &c); 若输入数据格式为:12341230.26 scanf( %2d %0*3d %02d", &a, &b) 若输入数据格式为:123456k则将12赋给a,67赋给b
37 附加格式说明字符: 字 符 作 用 字母l 用于输入长整型数据,可加在格式符d、o、x、f、e前面。 字母h 对实数,表示输出n位小数;对字符串,表示截取的字符个数。 m(一个正整数) 指定输入数据所占宽度。 * 表示本输入项在读入后不赋给相应的变量。 例 : scanf("%3d%3d",&a,&b); 若输入数据格式为:123456 则将123赋给a,456赋给b。 例 : scanf("%c%c%c",&c1,&c2,&c3); 若输入数据格式为:a b c 则将a赋给c1, 赋给c2,b赋给c3。 例 : scanf("%d%c%f",&a,&b,&c); 若输入数据格式为:1234a123o.26 例 : scanf("%2d %*3d %2d",&a,&b); 若输入数据格式为: 12 345 67 则将12赋给a,67赋给b。 a b c
6、程序举例 310输入三角形的三边长,求三角形的面积。 (设输入的三边长ab,c能构成三角形) #include "math. h maino float a, b, c,S, area scanf(%f, %of, %f", &a, &b, &c) s=1.0/2*(a+b+c) area=sqrt(s"(s-a)"(s-b)*(s-c); printf("a=%7.2;b=%7.2;c=%7.2f,s=%7.2fn",a,b,c,s printf("area=%7.2fn", area); ls31从键盘输入一个大写字母,要求改用小写字母输出 ls312求ax2+bx+c=0方程的根。a,bc由键盘输入,设b2-4ac>0
38 6、程序举例 ls3_10输入三角形的三边长,求三角形的面积。 (设输入的三边长a,b,c能构成三角形) #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, c=%7.2f, s=%7.2f\n",a,b,c,s); printf("area=%7.2f\n",area); } ls3_11从键盘输入一个大写字母,要求改用小写字母输出。 ls3_12 求ax2+bx+c=0方程的根。a,b,c由键盘输入,设b 2 -4ac>0
例ls31 main( inta=0123,b=0x123; float c=111111.111ll111ld=1.23e3: double llllll. 1111llllll, y=1.23e3 printf("%0, %d\n", a, a) printf("%x, %dn"b, b): printf( %f, %fn,c, x) printf(" %f, %eIn",d,y
39 main() {int a=0123,b=0x123; float c=111111.1111111111,d=1.23e3; double x=111111.1111111111,y=1.23e3; printf("%o,%d\n",a,a); printf("%x,%d\n",b,b); printf("%f,%f\n",c,x); printf("%f,%e\n",d,y); } 例ls3_1
例s32 maino fint i-0 j=0, x,y; F=i+1; j++, printf("%d, %\",i,j) /*1.1* =++1;y=++; printf("%d, %"x,y) /*2,1* printf("%d, %dn", ++y, y); /*from right to leght 2, 1*/ printf(" %d, %dn ++x, y++); /3, 2/ printf("od,%d,%dn",i,(i++)+(i++)+(++),1),/*5,9,2*/ printf("%/od,%d,%dmn",i(++1)+(++1)+(++i),)}/*8,21,5*
40 main() {int i=0,j=0, x,y; i=i+1; j++; printf("%d,%d\n",i,j); /* 1,1 */ x=++i; y=j++; printf("%d,%d\n",x,y); /* 2,1 */ printf("%d,%d\n",++y,y); /*from right to leght 2,1*/ printf("%d,%d\n",++x,y++); /*3,2 */ printf("%d,%d,%d\n",i,(i++)+(i++)+(i++),i); /*5,9,2*/ printf("%d,%d,%d\n",i,(++i)+(++i)+(++i),i); } /*8,21,5*/ 例ls3_2