运行结果为: a=-1,177777,ffff,65535 b=-2,177776,fffe,65534 请读者自己分析。 2.范例二 程序3-6:字符数据的输出。 main() {char c='a'; int i=97; printf("%c,%din",c,c); printf("%c,%din",i,i); 2024/10/28 26
2024/10/28 26 运行结果为: a = -1,177777,ffff,65535 b = -2,177776,fffe,65534 请读者自己分析。 2.范例二 程序 3 - 6:字符数据的输出。 main( ) {char c='a'; int i=97; printf("%c,%d \n",c,c); printf("%c,%d \n",i,i); }
运行结果为: a,97 a,97 也可以指定输出字数宽度,如果有: printf("%3c",c) 则输出:a,即c变量输出占3列,前2列补空格。 3.范例三 程序3-7:字符串的输出。 main() printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA","CHINA", "CHNA',"CHNA")房 2034/10/28 27
2024/10/28 27 运行结果为: a,97 a,97 也可以指定输出字数宽度,如果有: printf("%3c",c) 则输出: a,即c变量输出占3列,前2列补空格。 3.范例三 程序3-7:字符串的输出。 main( ) { printf("%3s,%7.2s,%.4s,%-5.3s\n","CHINA", "CHINA", "CHINA", "CHINA"); }
输出如下 CHINA, CH,CHIN.CHI 其中第3个输出项,格式说明为“%.4s”,即只指定了 n,没指定m,自动使m=n=4,故占4列。 4.范例四 程序3-8: 输出实数时的有效位数。 main() {float x,y; x=111111.111,y=222222.222; printf("%f",x+y); 运行结果为: 2024/1028333333.328125 28
2024/10/28 28 输出如下 CHINA, CH,CHIN,CHI 其中第3个输出项,格式说明为“%.4s”,即只指定了 n,没指定m,自动使m=n=4,故占4列。 4.范例四 程序3-8:输出实数时的有效位数。 main() {float x,y; x=111111.111, y=222222.222; printf("%f",x+y); } 运行结果为: 333333.328125
显然,只有前7位数字是有效数字。千万不要以为凡是 打印出来的数字都是准确的。 双精度数也可以用%格式输出,它的有效位数一般为 16位,给出小数6位。 3.3.3知识归纳 由于printf是函数,因此,“格式控制”字符串和“输 出表列”实际上都是函数的参数。printfi函数的一般形式 可以表示为: printf(参数1,参数2,参数3.参数n) printf函数的功能是将参数2~参数n按参数1给定的格 式输出。 2024/10/28 29
2024/10/28 29 显然,只有前7位数字是有效数字。千万不要以为凡是 打印出来的数字都是准确的。 双精度数也可以用%f格式输出,它的有效位数一般为 16位,给出小数6位。 3.3.3 知识归纳 由于printf是函数,因此,“格式控制”字符串和“输 出表列”实际上都是函数的参数。printf函数的一般形式 可以表示为: printf(参数1,参数2,参数3.参数n) printf函数的功能是将参数2~参数n按参数1给定的格 式输出
1.格式字符 对不同类型的数据用不同的格式字符。常用的有以下 几种格式字符: (1)d格式符。用来输出十进制整数。有以下几种用 法: 1)%d,按整型数据的实际长度输出。 2)%md,m为指定的输出字段的宽度。如果数据的 位数小于m,则左端补以空格,若大于m,则按实际位数 输出。如: printf("%4d,%4d",a,b); 若a=123,d=12345,则输出结果为: 123,12345 2024/10/28 30
2024/10/28 30 1.格式字符 对不同类型的数据用不同的格式字符。常用的有以下 几种格式字符: (1)d格式符。用来输出十进制整数。有以下几种用 法: 1)%d,按整型数据的实际长度输出。 2)%md,m为指定的输出字段的宽度。如果数据的 位数小于m,则左端补以空格,若大于m,则按实际位数 输出。如: printf("%4d,%4d",a,b); 若a=123,d=12345,则输出结果为: 123,12345