第二讲 用printf()打印简单字符图案
- 格式:ppt
- 大小:7.35 MB
- 文档页数:19
C语⾔中printf的⽤法输出控制符常⽤的输出控制符主要有以下⼏个:控制符说明%d按⼗进制整型数据的实际长度输出。
%ld输出长整型数据。
%md m 为指定的输出字段的宽度。
如果数据的位数⼩于 m,则左端补以空格,若⼤于 m,则按实际位数输出。
%u输出⽆符号整型(unsigned)。
输出⽆符号整型时也可以⽤ %d,这时是将⽆符号转换成有符号数,然后输出。
但编程的时候最好不要这么写,因为这样要进⾏⼀次转换,使 CPU 多做⼀次⽆⽤功。
%c⽤来输出⼀个字符。
%f⽤来输出实数,包括单精度和双精度,以⼩数形式输出。
不指定字段宽度,由系统⾃动指定,整数部分全部输出,⼩数部分输出 6 位,超过 6 位的四舍五⼊。
%.mf输出实数时⼩数点后保留 m 位,注意 m 前⾯有个点。
%o以⼋进制整数形式输出,这个就⽤得很少了,了解⼀下就⾏了。
%s⽤来输出字符串。
⽤ %s 输出字符串同前⾯直接输出字符串是⼀样的。
但是此时要先定义字符数组或字符指针存储或指向字符串,这个稍后再讲。
%x(或 %X 或%#x 或 %#X)以⼗六进制形式输出整数,这个很重要。
%x、%X、%#x、%#X 的区别⼀定要掌握 %x(或 %X 或 %#x 或 %#X),因为调试的时候经常要将内存中的⼆进制代码全部输出,然后⽤⼗六进制显⽰出来。
下⾯写⼀个程序看看它们四个有什么区别:1. # include <stdio.h>2. int main(void)3. {4. int i = 47;5. printf("%x\n", i);6. printf("%X\n", i);7. printf("%#x\n", i);8. printf("%#X\n", i);9. return 0;10. }在 V 6.0 中的输出结果:2f2F0x2f0X2F。
printf 使用方法printf 函数是 C 语言中常用的输出函数,用于将格式化的数据输出到屏幕上。
本文将介绍 printf 函数的基本用法和常见格式控制符,帮助读者更好地理解和使用 printf 函数。
下面是本店铺为大家精心编写的3篇《printf 使用方法》,供大家借鉴与参考,希望对大家有所帮助。
《printf 使用方法》篇1一、printf 函数的基本用法printf 函数的语法如下:```printf(const char *format,...);```其中,第一个参数是一个字符串格式化模板,后面的参数根据模板指定的格式依次输出。
下面是一个简单的示例:```#include <stdio.h>int main() {int a = 10, b = 20;printf("a=%d, b=%d", a, b);return 0;}```输出结果为:```a=10, b=20```二、常见格式控制符printf 函数中,格式控制符用于指定输出数据的格式和位置。
下面是一些常见的格式控制符:1. %d:输出整数```printf("a=%d", a); // 输出 "a=10"```2. %f:输出浮点数```printf("b=%f", b); // 输出 "b=20.000000"```3. %c:输出字符```printf("c=%c", "A"); // 输出 "c=A"```4. %s:输出字符串```printf("str=%s", "Hello World"); // 输出 "str=Hello World" ```5. %n:输出换行符```printf("newline=%n", endl); // 输出 "newline= "```6. %x:输出十六进制整数```printf("hex=%x", a); // 输出 "hex=0xA"```三、printf 函数的注意事项1. 格式控制符必须与输出参数类型一一对应,否则可能会导致输出错误。
c语言的printf函数printf函数是C语言中最基础、最常用的输出函数之一,它的作用是将指定的内容输出到屏幕上。
printf函数的基本语法如下:printf('输出格式', 输出参数);其中,输出格式是指控制输出内容的格式,包括各种占位符和修饰符,输出参数是指要输出的实际内容。
例如:printf('%d + %d = %d', 2, 3, 5);上面的语句将输出“2 + 3 = 5”,其中“%d”是占位符,表示输出一个整数。
除了%d以外,printf函数还支持多种占位符和修饰符,用于输出不同类型的数据,如下表所示:占位符t类型t示例%dt整数t10%ft浮点数t3.14%ct字符t'a'%st字符串t'hello'%pt指针地址t0x7fff5fbff700在使用printf函数时,我们可以根据需要选择不同的占位符和修饰符,以满足输出内容的要求。
例如:printf('%s 的成绩是 %.1f', '小明', 85.5);上面的语句将输出“小明的成绩是85.5”,其中“%s”表示输出一个字符串,“%.1f”表示输出一个保留1位小数的浮点数。
需要注意的是,在使用printf函数时,输出格式和输出参数必须一一对应,否则会出现错误或不可预料的结果。
同时,我们也应该遵循一些约定俗成的输出规范,以便让输出内容更加清晰易读。
例如: 1. 在输出数字时,应该使用千位分隔符,例如:printf('总人口为 %'d 亿', 14);输出结果为“总人口为 14亿”。
2. 在输出表格时,应该使用制表符“t”来对齐,例如:printf('姓名t性别t年龄');printf('小明t男t18');printf('小红t女t17');输出结果为:姓名t性别t年龄小明t男t18小红t女t17总之,printf函数是C语言中非常重要的输出函数,熟练掌握其语法和使用方法,可以让我们更加高效、准确地输出内容。
c语言的printf函数
printf函数是C语言中最重要的输出函数之一。
它用于向屏幕或文件输出字符、字符串、数字等各种类型的数据。
printf函数的基本用法是在双引号中输入输出格式化字符串,其中包含了各种占位符,用于指定输出的数据类型和格式。
printf函数的格式化字符串可以包含多个占位符,每个占位符都对应一个输出参数。
例如,以下格式化字符串“%d %f %s”表示输出一个整数、一个浮点数和一个字符串。
在调用printf函数时,需要按照格式化字符串中的占位符依次传入对应的输出参数,这些参数可以是常量、变量或表达式。
例如,下面的代码将输出一个整数和一个字符串:
int num = 10;
char str[] = 'Hello, World!';
printf('%d %s', num, str);
除了基本的占位符,printf函数还支持各种格式化选项,用于控制输出的对齐、精度、填充等参数。
例如,以下格式化字符串包含了一些格式化选项:
printf('%-10s%5d%10.2f
', 'apple', 3, 2.5);
这个例子中,“%-10s”表示左对齐的字符串占位符,最多输出10个字符;“%5d”表示右对齐的整数占位符,占用5个字符宽度;“%10.2f”表示右对齐的浮点数占位符,占用10个字符宽度,并保
留2位小数。
总之,printf函数是C语言中非常常用的输出函数,掌握它的用法和格式化选项对于开发C语言程序非常重要。
打印字符图形例1 用for循环编程画出下列图形:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM分析:该图形一共有10行,每一行增加一个字符,所以,应循环10次,每次输出一行,其循环模式为:for( i=1;i<=10;i++){输出第i行换行}“输出第i行”是在for循环中的一个小循环。
每次执行“输出第i行”,其长度都是不一样的,但长度的变化正好与循环变量i同步,故可以依赖于i。
注意到第i行的M字符数与i的关系。
行 i M数1 1 12 2 23 3 34 4 4…10 10 10所以,可以得到“输出第i行”的循环为:for(j=1;j<=i;j++)printf(“%c”,’M’)完整的程序如下:#include <stdio.h>main(){int i,j;for(i=1;i<=10;i++){for(j=1;j<=i;j++)printf("%c",'M');printf("\n"); }}说明:对付这种字符图形,一般用两重循环,外循环遍历所有行,内循环遍历行中每个字符。
例2 输出下列图形:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM分析:该图形一共有10行,这次要考虑每行中,先输出若干个空格,所以,其外循环为:for( i=1;i<=10;i++){输出若干个空格输出若干M换行}下面列出在第i行,其空格数,M数与i的关系为:行i 空格数 M数1 0 192 1 173 2 154 3 13…10 9 1即第i行的空格数为i-1个,M个数为21-2i。
即在第i行输出空格和输出M字符的内循环分别为:for(j=1;j<=i-1;j++)printf(“”);for(k=1;k<=21-2i;k++)printf(“%c”,’M’);合起来,构成一个完整程序如下:#include <stdio.h>main(){ int i,j,k;for(i=1;i<=10;i++){for(j=1;j<=i-1;j++)printf(" ");for(k=1;k<=21-2*i;k++)printf("%c",'M');printf("\n");}}例3 输出下列图形:AABCABCDEABCDEFGABCDEFGHIABCDEFGHIJKABCDEFGHIJKLMABCDEFGHIJKLMNOABCDEFGHIJKLMNOPQABCDEFGHIJKLMNOPQRS分析:该图形一共有10行,这次要考虑每行中,先输出若干个空格,所以,其外循环为:for( i=1;i<=10;i++){输出若干个空格输出若干字符换行}如果要输出A起头依序的n(n<27)个字母,可以为:for(ch='A';ch<'A'+n;++ch)printf("%c",ch);下面分析每一行中的空格数与字符数与第i行之间的关系着手:行i 空格数字符数1 9 12 8 33 7 54 6 7…10 0 19即第i行的空格数据为10-i个,字符数为2i-1。
printf 用法-回复printf是一种在计算机编程中常用的函数,用于在控制台输出文本和数据。
它是C语言中的一个标准库函数,也被用于其他编程语言。
本文将逐步介绍printf函数的用法,包括格式化字符串、转义字符和参数传递等方面的知识。
一、基本概述printf函数的基本语法如下:int printf(const char *format, ...);其中,format是一个格式化字符串,用于指定输出的格式。
...表示可变参数,即可以传递任意多的参数。
函数返回值为打印的字符数量。
二、格式化字符串格式化字符串包含普通字符和格式指示符。
普通字符会原样输出,而格式指示符用于输出变量的值。
1. 普通字符普通字符是格式化字符串中的普通文本内容,会按照顺序输出。
例如:cprintf("Hello, world!");这行代码会在控制台输出字符串"Hello, world!"。
2. 格式指示符格式指示符以百分号()开头,用于指定输出变量的类型和格式。
常用的格式指示符有:- d:输出有符号十进制整数- u:输出无符号十进制整数- f:输出浮点数- c:输出字符- s:输出字符串- p:输出指针地址例如,以下代码会输出变量x的值:cint x = 10;printf("The value of x is d", x);三、转义字符转义字符用于在格式化字符串中插入特殊的字符。
常用的转义字符有:- \n:换行- \t:制表符- \": 双引号- \\:反斜杠例如,以下代码会在控制台输出两行文字:cprintf("First line\nSecond line");四、参数传递printf函数可以接收任意多的参数,并按照格式化字符串中的格式指示符进行输出。
参数的顺序与格式化字符串中的格式指示符的顺序应保持一致。
1. 输出多个变量cint x = 10;float y = 3.14;printf("x = d, y = f", x, y);2. 输出字符串cchar name[] = "John";printf("My name is s", name);3. 使用格式化参数宏有时,我们需要在格式化字符串中多次使用同一个变量的值,可以使用“*”格式化指示符和格式化参数宏来实现。
c语言中printf的用法c语言中printf的用法的用法你知道吗?下面小编就跟你们详细介绍下c语言中printf的用法的用法,希望对你们有用。
c语言中printf的用法的用法如下:Printf和Scan函数的使用方法一printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
在编写程序时经常会用到此函数。
printf()函数的调用格式为:printf("<格式化字符串>", <参量表>);其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。
格式化字符串的格式是:%[标志][输出最小宽度][.精度][长度]格式字符1. 标志:标志字符为-、+、#、空格四种,其意义下表所示:标志意义- 结果左对齐,右边填空格+ 输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号# 对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点()例1:#i ncludemain(){int a=100;float b=123.255;printf("a=%d ",a);printf("a=d ",a);printf("a=%-10d ",a);printf("a=%+d ",a);printf("a=% d ",a);printf("a=%#o ",a);printf("a=%#x ",a);printf("b=%#f ",b);}运行结果a=100a= 100a=100a=+100a= 100a=0144a=0x64b=123.254997 ()2.输出最小宽度:用十进制整数来表示输出的最少位数。
printf函数的说明
printf函数是C语言标准函数库中的一种重要的格式输出函数,它可以把它的参数列根据格式输出到标准输出设备,通常是屏幕上。
printf函数通常用于输出格式类似的字符串,它的完整语法如下:
int printf(const char*format,…)
该函数返回按格式输出的字符数,各个参数:
1、const char*format:指定按怎样的格式输出,其中应有format中的转换说明符(如“%s”),以分隔多个参数,这样,printf函数就知道它后面应该跟几个参数;
2、后面是要输出的参数,它们都大括号中,要与各个转换说明符(如“%s”)匹配,即类型要相同,比如字符串必须是一个字符串指针。
printf函数一般用于格式化输出数据,把变量的值输出到屏幕或文件中,它是最常用的一个库函数之一,它允许除了int型变量以外的其它型变量在屏幕上以人们可读的形式
显示出来。
printf函数格式化输出到字符串时,首先把模式和参数传给它所指定的输出设备——一般都是指屏幕,然后printf会把参数按照模式所指示的格式输出到这一设备,它会将
模式中的字符拷贝到输出设备,而遇到格式转换说明符时printf会把指定的变量转换为
模式对应类型的值再输出,而参数的转换类型是在模式中指定的,比如“#%d”表示以十
进制形式输出。
printf函数在实际应用中可以在想要看清楚变量值时,用它来格式化输出,简化了程序调试;也可以用它制作简单的用户界面,如提示信息(比如错误提示),用户输入提示等;还可以用它完成文件的输出,如打印机的输出。
printf函数的使用非常广泛,因为它具有易用性、操作方便、参数形式灵活和功能强大的特点。
这就是printf函数的使用介绍。
printf函数c语言的用法printf函数是C语言中用于输出格式化字符串的函数,是C语言中最常用的函数之一。
通过printf函数,可以将不同类型的数据以指定格式输出到屏幕上或者文件中。
下面是printf函数在C语言中的用法及相关注意事项。
1. 基本用法:printf函数的基本语法如下:```cint printf(const char *format, ...);```其中,format是一个格式化字符串,可以包含普通字符和格式控制符,格式控制符以百分号(%)开头,用于指定输出数据的类型和格式。
2. 格式控制符:常用的格式控制符包括:- %d:以十进制形式输出整数- %f:以小数形式输出浮点数- %c:输出一个字符- %s:输出一个字符串- %p:输出一个指针的值- %x:以十六进制形式输出整数3. 示例:```cint num = 10;float f = 3.14;char ch = 'A';char str[] = "Hello, World!";printf("整数:%d\n", num);printf("浮点数:%f\n", f);printf("字符:%c\n", ch);printf("字符串:%s\n", str);```4. 格式化输出:通过格式化字符串,可以控制输出的格式,例如指定输出的宽度、精度等。
示例如下:```cint num = 10;printf("十进制:%d\n", num); // 默认输出printf("固定宽度:%5d\n", num); // 输出宽度为5printf("左对齐:%10d\n", num); // 左对齐输出printf("浮点数精度:%.2f\n", 3.14159); // 小数点后两位```5. 转义字符:在格式化字符串中,可以使用转义字符来输出特殊字符,例如换行符(\n)、制表符(\t)等。
1.转换说明符%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)%c 字符%d 有符号十进制整数%f 浮点数(包括float和doulbe)%e(%E) 浮点数指数输出[e-(E-)记数法]%g(%G) 浮点数不显无意义的零"0"%i 有符号十进制整数(与%d相同)%u 无符号十进制整数%o 八进制整数 e.g. 0123%x(%X) 十六进制整数0f(0F) e.g. 0x1234%p 指针%s 字符串%% "%"2.标志左对齐:"-" e.g. "%-20s"右对齐:"+" e.g. "%+20s"空格:若符号为正,则显示空格,负则显示"-" e.g. "% 6.2f" #:对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点。
3.格式字符串(格式)[标志][输出最少宽度][.精度][长度]类型"%-md" :左对齐,若m比实际少时,按实际输出。
"%m.ns":输出m位,取字符串(左起)n位,左补空格,当n>m or m省略时m=ne.g. "%7.2s" 输入CHINA输出" CH""%m.nf":输出浮点数,m为宽度,n为小数点右边数位e.g. "%3.1f" 输入3852.99输出3853.0长度:为h短整形量,l为长整形量printf的格式控制的完整格式:% - 0 m.n l或h 格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
c语言printf函数详解C语言printf函数简介printf函数是C语言中用于输出信息的函数之一,它的主要作用是将指定的数据格式化输出到标准输出设备(通常是终端)。
语法printf函数的语法如下:int printf(const char *format, ...);其中,const char *format是一个字符串类型的参数,用于指定输出的格式;...表示可以有多个参数,用来填充格式字符串中的占位符。
常用格式控制符下面列举了一些常用的格式控制符,用于在格式字符串中指定输出的格式:•%d:输出有符号十进制整数•%u:输出无符号十进制整数•%f:输出浮点数•%c:输出一个字符•%s:输出一个字符串•%p:输出指针的值•%x:输出十六进制整数,字母小写•%X:输出十六进制整数,字母大写使用示例以下是一些使用printf函数的示例:1.输出整数:int num = 123;printf("整数:%d\n", num);输出结果:整数:1232.输出浮点数:float pi = ;printf("圆周率:%f\n", pi);输出结果:圆周率:3.输出字符:char ch = 'A';printf("字符:%c\n", ch);输出结果:字符:A4.输出字符串:char name[] = "John";printf("姓名:%s\n", name);输出结果:姓名:John5.输出指针:int *ptr = NULL;printf("指针:%p\n", ptr);输出结果:指针:(nil)结论通过对printf函数的详细解释,我们了解到了它的语法和常用的格式控制符。
printf函数是一个非常常用的函数,可以用于在C语言中输出各种类型的数据到标准输出设备。
正确使用printf函数可以使我们的程序更具有可读性和可维护性。
printf 用法-回复Printf是一种在编程语言中使用的函数,用于向屏幕或其他输出设备打印格式化的文本。
它是一种非常常用的函数,其用法非常灵活。
在本文中,我们将一步一步回答关于printf的用法的问题,并探讨其在编程中的重要性以及一些常见问题和技巧。
1. 什么是printf函数?Printf是一个函数,它允许程序员按照指定的格式向屏幕或其他输出设备输出文本。
在C语言中,printf是在标准库中定义的一个函数。
其他编程语言也具有类似的功能,并拥有相似的函数,例如Python中的print函数。
2. printf函数的基本用法是什么?Printf函数的基本用法是通过指定格式字符串来输出文本。
格式字符串是一个以双引号括起来的字符串,其中包含普通文本和格式控制符。
格式控制符以百分号()开头,并按照指定的格式来替换它们。
以下是一个基本的printf函数的例子:cprintf("Hello, World!");上面的代码将输出字符串"Hello, World!"到屏幕上。
3. 如何在printf函数中使用格式控制符?格式控制符告诉printf函数如何替换它们。
以下是一些常见的格式控制符的示例:- d:用于输出整数。
- f:用于输出浮点数。
- c:用于输出字符。
- s:用于输出字符串。
例如,我们可以使用以下代码来输出一个整数:cint num = 10;printf("The number is d", num);这将输出"The number is 10"。
4. 如何在printf函数中打印变量的值?在printf函数中打印变量的值,只需在格式字符串中使用对应的格式控制符,并将变量作为参数传递给printf函数即可。
以下是一个示例:cint age = 25;printf("My age is d", age);这将输出"My age is 25"。
printf用法---printf输出固定长度的字符需要打印一个固定长度的字符一般可以这么做:void str_print(const char* str, unsigned int str_len) {int i=0;for (; i < str_len; i++)printf("%c", str[i]);printf("\n");}但是用一行代码也可以搞定:printf("%.*s\n", str_len, str);printf一般用法:ref :/yuaqua/archive/2011/10/21/2219856.ht ml小数点.后“*”表示输出位数,具体的数据来自参数表printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个“*”代替那个常量,然后在后面提供变量给“*”。
同样,小数点.前也可以添加*,也要用户输入一个位宽值来代替,表示输出的字符所占位宽。
#include <cstdio>#include <iostream>int main(){char *s = "this is test example";int a,b;printf("%.*s\n", 10, s);//这里的常量10就是给*号的,你也可以用一个变量来控制宽度printf("%*.*s\n", 20, 10, s);//常量20控制输出所占位宽,也可以用一个变量控制std::cin>>a>>b; //输入15 10printf("%*.*s\n", a, b, s);//输出为:-----this is testd::cin.get();std::cin.ignore();//暂停程序执行}输出结果为:this is te----------this is te//-代表空格15 10 //输入-----this is te注:printf的一般形式为printf("格式控制字符串",输出列表),格式控制字符串形式为:[标志][输出最小宽度][.精度][长度]类型。
1-1. 编程,输入n,输出如下例(n=5)所示的图形: *************************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=n;j++)printf("*");printf("\n");}}1-2. 编程,输入n,输出如下例(n=5)所示的图形: ************************* ————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=i-1;j++)printf(" ");for(j=1;j<=n;j++)printf("*");printf("\n");}}1-3. 编程,输入n值,输出如下例(n=4)所示的图形: ****************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}}1-4. 编程,输入n值,输出如下例(n=4)所示的图形: ****************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=i-1;j++)printf(" ");for(j=1;j<=2*(n-i)+1;j++)printf("*");printf("\n");}}1-5. 编程,输入n值,输出如下例(n=4)所示的高和上底均为n的等腰梯形: ****************************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-2+n;j++)printf("*");printf("\n");}}1-6. 编程,输入n值,输出如下例(n=4)所示的高和下底均为n的等腰梯形: ****************************————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-2+n;j++)printf("*");printf("\n");}}1-7. 编程,输入n,输出如下例(n=3)所示的边长为n的菱形: *************————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n-k;j++)printf(" ");for(j=1;j<=2*k-1;j++)printf("*");1-8. 编程,输入n值,输出如下例(n=4)所示的边长均为n的正六边形: ********************************************** 当 n=4 时————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n-k;j++)printf(" ");for(j=1;j<=2*k-2+n;j++)printf("*");printf("\n");}}1-9. 编程,输入n值,输出如下例(n=4)所示的图形:**********————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){if(i==1||i==n){for(j=1;j<=n;j++)printf("*");printf("\n");}else{for(j=1;j<=n-i;j++)printf(" ");printf("*\n");}}}1-10. 编程,输入n值,输出如下例(n=4)所示的图形: **********————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){if(i==1||i==n){for(j=1;j<=n;j++)printf("*");printf("\n");}else{for(j=1;j<=i-1;j++)printf(" ");printf("*\n");}}}1-11. 编程,输入n值,输出如下例(n=5)所示的图形: ****** ** ** ****** ————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-2;j++)printf("%s",i==1||i==n"*":" ");printf("*");printf("\n");}}1-12. 编程,输入n值,输出如下例(n=5)所示的图形:****** ** ** ******————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-2;j++)printf("%s",i==1||i==n"*":" ");printf("*");printf("\n");}}1-13. 编程,输入n值,输出如下例(n=4)所示的图形:** ** ********————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n-1;i++){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1"*":" ");printf("\n");}for(j=1;j<=2*n-1;j++)printf("*");}1-14. 编程,输入n值,输出如下例(n=4)所示的图形:******** ** **————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(j=1;j<=2*n-1;j++)printf("*");printf("\n");for(i=n-1;i>=1;i--){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1"*":" ");printf("\n");}}1-15. 编程,输入n值,输出如下例(n=4)所示的高和上底均为n的等腰梯形: ***** ** ***********————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-4+2*i;j++)printf("%s",i==1||i==n"*":" ");printf("*");printf("\n");}}1-16. 编程,输入n值,输出如下例(n=4)所示的高和下底均为n的等腰梯形: *********** ** *****————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-4+2*i;j++)printf("%s",i==1||i==n"*":" ");printf("*");printf("\n");}}1-17. 编程,输入n值,输出下例(n=3)所示的边长为n的菱形:** ** ** **————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n+k-1;j++)printf("%s",j==n-k+1||j==n+k-1"*":" ");printf("\n");}}1-18. 编程,输入n值,输出下例(n=4)所示的边长为n的正六边形:***** ** ** ** ** *****————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n-k;j++)printf(" ");printf("*");for(j=1;j<=n-4+2*k;j++)printf("%s",i==1||i==2*n-1"*":" ");printf("*");printf("\n");}}1-19. 编程,输入n值,输出下例(n=5)所示的高为n的图形: * *** ***** ******* *************————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n-1;i++){for(j=1;j<=i;j++)printf("*");for(j=1;j<=2*n-2*i-1;j++)printf(" ");for(j=1;j<=i;j++)printf("*");printf("\n");}for(j=1;j<=2*n-1;j++)printf("*");}1-20. 编程,输入n值,输出下例(n=5)所示的高为n的图形: ************* ******* ***** *** *————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(j=1;j<=2*n-1;j++)printf("*");printf("\n");for(i=n-1;i>=1;i--){for(j=1;j<=i;j++)printf("*");for(j=1;j<=2*n-2*i-1;j++)printf(" ");for(j=1;j<=i;j++)printf("*");printf("\n");}}1-21. 编程,输入n值,输出下例(n=3)所示的图形:* ** *** ** *————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=k-1;j++)printf(" ");printf("*");for(j=1;j<=2*n-2*k-1;j++)printf(" ");printf("%s",i==n"\n":"*\n");}}1-22. 编程,输入n值,输出下例(n=3)所示的图形: * ** ***————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=n;for(j=1;j<=k-1;j++)printf(" ");printf("*");for(j=1;j<=2*n-2*k-1;j++)printf(" ");printf("%s",k==n"\n":"*\n");}}1-23. 编程,输入n值,输出下例(n=4)所示的图形: * ** ** *** ** *————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;printf("*");for(j=1;j<=n-k;j++)printf(" ");printf("%s",k==n"\n":"*\n");}}1-24. 编程,输入n值,输出下例(n=5)所示的图形: * ** * ** * ** * ** *————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(j==1||j==i||j==n)printf("*");else printf(" ");}printf("\n");}}1-25. 编程,输入n值,输出下例(n=5)所示的图形: * ** ** ** ** ————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1"*":" ");printf("\n");}}1-26. 编程,输入n值,输出下例(n=5)所示的图形:** ** ** ** *————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1"*":" ");printf("\n");}1-27. 编程,打印下列上三角形式的乘法九九表。
C语⾔:printf()标志详解
%d ⼗进制整数
%ld ⼗进制长整型
%hd ⼗进制短整型
%o ⼋进制整数
%X %x ⼗六进制整数
%f 以⼗进制形式输出 float 类型;
%lf 以⼗进制形式输出 double 类型;
%e 以指数形式输出 float 类型,输出结果中的 e ⼩写;
%E 以指数形式输出 float 类型,输出结果中的 E ⼤写;
%le 以指数形式输出 double 类型,输出结果中的 e ⼩写;
%lE 以指数形式输出 double 类型,输出结果中的 E ⼤写。
%c 字符型数据显⽰
%s 字符串形式输出
%g 默认最多保留六位有效数字,包括整数部分和⼩数部分;%f 和 %e 默认保留六位⼩数,只包括⼩数部分。
%g 不会在最后强加 0 来凑够有效数字的位数,⽽ %f 和 %e 会在最后强加 0 来凑够⼩数部分的位数。
总之,%g 要以最短的⽅式来输出⼩数,并且⼩数部分表现很⾃然,不会强加零,⽐ %f 和 %e 更有弹性
%g 和 %lg 分别⽤来输出 float 类型和 double 类型,并且当以指数形式输出时,e⼩写。
%G 和 %lG 也分别⽤来输出 float 类型和 double 类型,只是当以指数形式输出时,E⼤写。
第二讲printf()(1)昨天说到Hello World,今天还是以Hello World来开篇吧,同样还是输出“Hello World”----------------------------------------#include <stdio.h>int main(){char name[] = "Hello World";printf("%s.\n",name);getchar();return 0;}--------------------------------------------------------------------------------------------如果大家细心的话应该看出这个程序和上一讲的有所区别,在第一讲里我们就只用了一句话就把该实现完成,而这里我们浪费这么多笔墨,可能有人会问是不是太浪费空间了些?如果你已经开始这么想了,那么继续往下看。
char name[] = "Hello World";这里我们第一次使用了类型变量,char是字符类型,name是一个char类型变量,而且是一个数组变量(g关于数组和指针以后会细说),"="不是等号,这是赋值符号,“Hello world"是赋给char类型变量name[]的字符(不包括”“),这一句话可以这里来理解:将"Hello World"存放在字符型的name[]变量中(以后凡是出现该类的表达式都可以这么理解,不管是int(整形)还是float(浮点型)还是什么……这些类型在接下来会详细介绍,毕竟C/C++不可缺少变量)。
printf("%s.\n",name);这是这一讲的重点。
下面就重点说说这个函数的用法:printf()和scanf()是两个C语言里最为重要的两个函数,这两个函数让我们可以和程序通信,所以这就是我在说数据类型之前要先说这两个函数的原因,下面我们一起来研究这两个函数。