用C语言打印图案的几种常见的实现方法
c语言打印语句格式

c语言打印语句格式C语言打印语句格式C语言是一种为了编写操作系统和驱动程序等高效性软件而设计的程序语言。
在C语言中,打印语句是常见而重要的表达方式,用于向用户显示信息、调试代码或记录程序的运行状态。
打印语句可以将变量的值、程序的输出或者调试信息输出到控制台或其他设备上。
在本文中,我们将一步一步地解析C语言中打印语句的格式和使用方法。
1. 使用printf函数在C语言中,我们使用printf函数来输出打印语句。
printf函数是C标准库中的一个函数,其定义在stdio.h头文件中。
该函数的基本语法如下:cint printf(const char* format, ...);printf函数以一个字符串作为参数,该字符串称为格式化字符串。
格式化字符串中可以包含普通字符串和转换说明符。
普通字符串将直接输出,而转换说明符用于指定要输出的变量类型及其格式。
常用的转换说明符有:- d:用于输出十进制整数。
- f:用于输出浮点数。
- s:用于输出字符串。
- c:用于输出字符。
下面是一个例子,演示了如何使用printf函数输出不同类型的变量:c#include <stdio.h>int main() {int age = 20;float weight = 68.5;char name[] = "John";printf("Name: s\n", name);printf("Age: d\n", age);printf("Weight: .1f\n", weight);return 0;}上述程序中,我们首先定义了一个整数变量age,一个浮点数变量weight 和一个字符数组变量name。
然后,我们使用printf函数分别输出了这些变量的值。
注意到,我们在格式化字符串中使用了相应的转换说明符来指定输出的格式。
2. 格式化输出在C语言中,我们可以使用格式化字符串来控制打印输出的格式。
C语言图形输出习题

【4.4】输入n值,输出如图所示矩形。
【4.5】输入n值,输出如图所示平行四边形。
【4.6】输入n值,输出如图所示高为n的等腰三角形。
【4.7】输入n值,输出如图所示高为n的等腰三角形。
【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。
【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。
【4.10】输入n值,输出如图所示边长为n的空心正六边型。
【4.11】输入n值,输出如图所示图形。
【4.12】输入n值,输出如图所示图形。
【4.13】输入n值,输出如图所示图形。
【4.14】输入n值,输出如图所示图形。
【4.15】输入n值,输出如图所示图形。
【4.16】输入n值,输出如图所示图形。
(例为n=6时)【4.17】编写程序,输出如图所示sin(x) 函数0到2π的图形。
【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。
【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。
若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。
其中cos图形用"*"表示,f(y)用"+"表示,在两个图形的交点处则用f(y)图形的符号。
【4.20】编写程序,输出如图所示高度为n的图形。
【4.21】编写程序,输出如图所示高度为n的图形。
【4.22】输入n值,输出如图所示图形。
【4.23】输入n值,输出如图所示的n×n(n<10)阶螺旋方阵。
1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9图4.19 n=5时的螺旋方阵【4.24】输入n值,输出如图所示回型方阵。
【4.25】输出如图所示的数字金字塔【4.26】输入n值,输出如图所示图形。
【4.27】输入顶行字符和图形的高,输出如图所示图形。
【4.28】输入首字符和高后,输出如图所示回型方阵。
c语言打印结构体

c语言打印结构体C语言是一种非常流行的编程语言,它具有丰富的数据结构,例如数组、结构体以及指针。
对C语言程序员来说,了解并熟悉数据结构是非常重要的,尤其是涉及程序的设计和实现过程中的结构体的使用。
在本文中,我们将讨论如何使用C语言来打印结构体。
首先,要了解C语言中结构体的定义。
结构体是一种用户定义的数据类型,可以用来存储不同类型的数据。
它由用户定义的变量组成,并且可以包含位字段、结构体成员,甚至可以包括其他结构体类型。
在定义一个结构体之后,可以使用一个变量来引用它,也可以定义一个指向结构体类型的指针变量。
打印结构体可以通过使用结构体的成员变量的名称来实现,例如使用printf()函数来打印结构体的变量值。
要打印结构体的所有变量,可以使用循环来实现,这样可以保证所有的变量都被打印出来。
为了使用循环来打印结构体,首先需要获取结构体中包含的变量的数量,然后可以使用for循环来依次打印每个变量的值。
此外,也可以使用静态字符串数组来打印结构体变量。
对于C语言中的结构体,可以指定一个字符串数组,每个元素代表着结构体中的变量名。
然后,通过循环来按顺序读取数组中的每个元素,并使用printf()函数来读取结构体中的变量值。
使用这种方法,可以通过建立一个简单的字符串数组,来实现结构体变量的打印。
此外,也可以使用泛型函数打印结构体。
泛型函数是指可以用于任何类型的函数,因此可以通过泛型函数来简化结构体变量的打印。
使用泛型函数打印结构体变量,可以使用void *类型的参数来接收任意类型的参数,然后在函数内部根据参数的类型来打印结构体变量。
使用这种方式,可以不需要在函数定义中指定传递参数的具体类型,就可以实现结构体变量的打印。
通过以上介绍,我们可以知道,使用C语言来打印结构体是非常简单的。
可以通过使用printf()函数,使用循环,使用静态字符串数组,以及使用泛型函数等方式来实现结构体变量的打印。
当使用C 语言开发程序时,了解如何正确使用和打印C语言中的结构体,将会对C语言程序的设计和实现具有重要意义。
c语言打印函数

c语言打印函数
C语言打印函数就是C程序设计语言为用户提供的打印有关的函数,以便数据可以被打印到显示器或其他可供打印的设备上。
C语言的打印函数可以说是C语言调用和获取数据的重要接口之一。
1、printf()函数
printf()函数是C语言非常常用的打印函数,它可以将参数中提供的格式化字符串以及其他参数打印到标准输出设备上(屏幕)。
相关用法如下:
printf(" 格式化字符串 ",参数1 ,参数2,....)
它具有较高的效率,功能强大,能够支持普通字符串和转义字符串的打印,并且支持格式化的字符串,如字符、整数和浮点数的格式化输出,常用的格式定义符号有:
%s 字符串
%d 整数
%f 浮点数
%c 字符
puts(" 字符串 ")
它的特点是只支持普通字符串的输出,不支持转义字符串和格式字符串的输出,更加简单,但效率也不如printf()函数更高。
putc(字符,文件指针)
总之,C语言打印函数被广泛使用,它可以较好地满足开发者们对数据打印的需求。
凡是需要打印任何形式的数据到任何设备,C语言打印函数就一定可以派上用场。
C#实现图片打印

C#实现图片打印打印的原理是:生成mdi文件,系统碰到mdi的时候会自动以打印的方式处理。
所以,不管用什么模板,什么方式;能在PrintPage 事件处理中,生成一张要打印内容的图片就OK了!C#实现打印源码如下:#region 打印private void btnPrint_Click(object sender, EventArgs e){//打印预览//PrintPreviewDialog ppd = new PrintPreviewDialog();PrintDocument pd = new PrintDocument();//设置边距Margins margin = new Margins(20, 20, 20, 20);pd.DefaultPageSettings.Margins = margin;////纸张设置默认//PaperSize pageSize = new PaperSize("First custom size", 800, 600);//pd.DefaultPageSettings.PaperSize = pageSize;//打印事件设置pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);//ppd.Document = pd;//ppd.ShowDialog();try{pd.Print();}catch (Exception ex){MessageBox.Show(ex.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);pd.PrintController.OnEndPrint(pd, new PrintEventArgs());}}//打印事件处理private void pd_PrintPage(object sender, PrintPageEventArgs e){string date = lblDate.Text; //当前日期string flowId = lblFlowId.Text; //流水号string payDate = PayDate.Year.ToString() + "年" + PayDate.Month.ToString() + "月"; //应收年月string adminId = lblAdminId.Text; //操作员编号string baseExpense = lblBaseExpense.Text; //应交基本费用string fine = lblFine.Text; //罚款数目string upExpense = lblUpExpense.Text; //上月上余string actualExpense = txtActualExpense.Text; //实际应交费用string chineseExpense = DecimalToChinese.ConvertSum(actualExpense); //实际应交费用的中文大写//读取图片模板Image temp = Image.FromFile(@"Receipts.jpg");GetResultIntoImage(ref temp, UserId, flowId, date, baseExpense, fine, upExpense, actualExpense, chineseExpense, payDate, adminId);int x = e.MarginBounds.X;int y = e.MarginBounds.Y;int width = temp.Width;int height = temp.Height;Rectangle destRect = new Rectangle(x, y, width, height);e.Graphics.DrawImage(temp, destRect, 0, 0, temp.Width, temp.Height, System.Drawing.GraphicsUnit.Pixel);}/// <summary>/// 将收费结果填充到图片模板/// </summary>private void GetResultIntoImage(ref Image temp,string userId,string flowId,string currentDate,string baseExpense,string fine,string upExpense,string actualExpense,string chineseExpense,string payDate,string adminName){//读取图片模板Graphics g = Graphics.FromImage(temp);Font f = new Font("宋体", 12);Brush b = new SolidBrush(Color.Black);//填充数据到图片模板(位置要在制作图片模板的时候度量好)g.DrawImage(temp, 0, 0, temp.Width, temp.Height);g.DrawString(userId, f, b, 168, 105);g.DrawString(UserName, f, b, 166, 134);g.DrawString(flowId, f, b, 535, 105);g.DrawString(currentDate, f, b, 535, 134);g.DrawString(baseExpense, f, b, 219, 202);g.DrawString(fine, f, b, 372, 202);g.DrawString(upExpense, f, b, 486, 202);g.DrawString(actualExpense, f, b, 596, 202);g.DrawString(chineseExpense, f, b, 196, 238);g.DrawString(payDate, f, b, 176, 269);g.DrawString(adminName, f, b, 497, 298);g.Dispose();}#endregion转自:/zhaogaoyan8/blog/item/d50fbf9a3f66c0bd c9eaf4c7.html。
c语言print和printf的用法

c语言print和printf的用法在C语言中,print和printf是两个常用的输出函数。
它们的作用是将指定的信息打印到屏幕上,方便程序员进行调试和查看程序运行结果。
但是,print和printf在使用上有一些区别。
本文将详细介绍这两个函数的用法。
一、print函数的用法print函数是C语言中的一个基本输出函数,它的原型如下:```cvoid print(char *str);```其中,str是要打印的字符串。
print函数会将str中的字符逐个输出到屏幕上。
下面是一个示例代码,演示了print函数的用法:```c#include <stdio.h>void main() {char *str = "Hello, world!";print(str);}```运行上述代码,将会打印出"Hello, world!"。
需要注意的是,print函数只能打印字符串,无法打印其他类型的数据。
如果要打印其他类型的数据,需要使用printf函数。
二、printf函数的用法printf函数是C语言中的一个格式化输出函数,它的原型如下:```cint printf(const char *format, ...);```其中,format参数是一个字符串,控制输出的格式。
在format字符串中,可以使用格式化转换符来指定输出的数据类型和格式。
下面是一个示例代码,演示了printf函数的用法:```c#include <stdio.h>void main() {int num = 100;printf("The number is %d\n", num);}```运行上述代码,将会打印出"The number is 100"。
在format字符串中,"%d"是一个格式化转换符,用于输出整数类型的数据。
一个打印菱形图案的C语言程序

一个打印菱形图案的C语言程序1.空心l菱形/*fileType: .cfileNmae: diamond 空心菱形author: xiaobingdate:2012年11月08日21点*/#include <stdio.h>int main(void){int i,j,k;//上半空心菱形for(i=1;i<=10;i++){ //控制行数10行for(k=10;k>i;k--){ //第一行9空格1* i=2 8空格2*printf(" ");}//当i=1时由第25行代码输出*if(i == 1){}else{printf(" *");}//空心空格个数打印0 2 4 6 16个for(j=1;j<2*i-2;j++){printf(" ");}printf(" *");printf("\n");}//下空心菱形for(i=1;i<=9;i++){ //去掉最长行只有9行//空格增多1 2 3 (9)for(k=1;k<=i;k++){printf(" ");}//最后一行*号由代码43行执行if(i == 9){}else{printf(" *");}//空心空格个数打印15 13 ....1 注意空格是15开始1结束for(j=1;j<=17-2*i;j++){ //i=9时候打印0个空格printf(" ");}printf(" *"); //打印每行后出现的*printf("\n"); //换行}}2.实心菱形总结了一下://这是做简单的,不考虑任何算法,傻X#include <stdio.h>int main(){printf(" *\n ***\n *****\n*******\n *****\n ***\n *\n");}最简短的程序估计就是这个了//C版本的:#include <stdio.h>int main(){int i = 0;for (; i < 9; i ++){printf("%*s\n",((i < 5) ? (i + 5) : (13 - i)),"*********" + ((i < 5) ? (8 - 2*i) : (2*i - 8)));}return 0;}//C++版本的:#include <iostream>using namespace std;int main(){for (int i = 0; i < 9; i ++){cout << " " + ((i < 5) ? i : (8 - i))<< "*********" + ((i < 5) ? (8 - 2*i) : (2*i - 8)) << endl;}return 0;}//双重嵌套再循环#include <stdio.h>#include <math.h>void main(){int n,i,j;printf("n=");scanf("%d",&n);for(i=0;i<(n*2+1);i++){for(j=0;j<fabs(i-n);j++) printf(" ");for(j=0;j<(2*(n-fabs(i-n))+1);j++) printf("*");printf("\n");}}//再来,统一求和判断,不分上下#include<stdio.h>void main(){int i,j,n;printf("n=?\n");scanf("%d",&n);for(i=0; i<2*n+1; i++){for(j=0; j<2*n+1; j++){if( i+j>=n && i+j<=3*n && i-j>=-n && i-j<=n ) printf("*");else printf(" ");}printf("\n");}}//正负判断方法#include<stdio.h>#include<math.h>#define N 5void main(){int i,j;for(i=-N;i<=N;i++){for(j=-N;j<=N;j++){if(abs(i)+abs(j)<=N)printf("*");elseprintf(" ");}printf("\n");}getchar();}。
回型方阵在C语言中的实现

回型方阵是一种有趣而常见的图案,可以在C语言中通过使用嵌套循环来实现。
在本文中,我将为您介绍回型方阵的概念,并提供一个基于C语言的实现示例。
回型方阵的概念回型方阵是由一系列数字或字符组成的矩阵,其元素按照从外向内的顺序递增或递减。
它呈现出一种螺旋式的形态,令人惊叹和好奇。
回型方阵可以通过一种简单而直接的方法来生成,这里我将向您展示基于C语言的实现。
C语言中的回型方阵实现为了在C语言中实现回型方阵,我们可以使用嵌套循环和适当的控制语句。
下面是一个简单的C代码示例,可以生成一个回型方阵:#include <stdio.h>void generateSpiralMatrix(int n) {int matrix[n][n];int value = 1;int i, k = 0, l = 0;while (k < n && l < n) {for (i = l; i < n; ++i) {matrix[k][i] = value++;}k++;for (i = k; i < n; ++i) {matrix[i][n - 1] = value++;}n--;if (k < n) {for (i = n - 1; i >= l; --i) {matrix[n - 1][i] = value++;}n--;}if (l < n) {for (i = n - 1; i >= k; --i) {matrix[i][l] = value++;}l++;}}// 打印回型方阵for (int i = 0; i < n; ++i) {for (int j = 0; j < n; ++j) {printf("%d\t", matrix[i][j]);}printf("\n");}}int main() {int n;printf("请输入回型方阵的大小:");scanf("%d", &n);generateSpiralMatrix(n);return 0;}在上述代码示例中,我们定义了一个名为generateSpiralMatrix的函数,它接受一个整数参数n,该参数表示回型方阵的大小。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
} gotoxy(1, 1); spl(); printf("\n"); sp2(); } Void spl() { int i,j; for(i=0; i<3; i++) { for(j=3- i;j>0;j- - ) printf(""); printf("\n") } } void sp2() { int i,j; for(i=0; i<3; i++) { for(j=0: j<=i;j++) printf(" "); printf("\n"); } } 用多种方法解决同一问题, 既有助于加深对这个问题的理解; 又 有助于对各种方法的掌握和应用。科
● 参考文献
[ 1] 武京玉 甄进忠 苗卫红《当前大学生思想道德现 状 及 引 导 》河 南 社 会科学 1998.5. [ 2] 罗元《高校思想道德素质教育的思考》广州大学学报:社科版, 2002.4. [ 3] 刘志明《高校学生工作研究与探索》天津:天津人民出版社,1998. [ 4] 黄 蓉 生 《社 会 主 义 市 场 经 济 条 件 下 高 校 学 生 工 作 理 论 与 实 践 》新 的探索 西南师范大学出版社,1997.
241
总之, 当前大学生思想道德状况主流是好的, 但问题也不容忽视, 其成因也是多方面的, 如能正确地加以分析和引导, 是可以得到较好 的解决的。加强大学生思想道德教育, 帮助大学生确立正确的人生观、 价值观是一项长期复杂而又艰苦细致的工作, 我们只有立足现实, 根 据大学生思想道德状况的现实特点, 从理论与实践的结合上下功夫, 我们德育工作者才能正确引导教育他们, 具体措施才能真正落到实 处, 收到实效。科
printf("\n"); } } 3.方法三 用二维数组来实现。把图案看成一个 7×7 的二维矩阵结构, 给这 个矩阵赋值, 即相应的位置上赋"*"。在程序中调用了 fabs0 这个库函 数, 它的功能是求绝对值。用循环控制变量 i 控制数组的行下标的取 值, 用循环控制变量 j 控制数组的列下标的取值。这个程序的关键是 在给数组赋值时, 分析列下标的开始值和结束值。 源程序: #include<math.h> main() { static char a[7][7],i,j,k; for(i=0;i<7;i++) { K=fabs(3- i); for(j=k;j<7- k;j++) a[i][j]=′*′; } for(i=0;i<7;i++) { for(j=0;j<7;j++) printf("%c",a[i][j]); printf("\n"); } } 把以上程序稍做改动一下, 可以输出任意大小的菱形图案。在这 里定义一个符号常量, 来控制数组的大小, 这样程序就具有了通用性。 #define N 9 #include<math.h> Main() { Static char a[N][N],i,j,k; for(i=0;i<N;i++) { k=fabs(N/2- i);for(j=k;j<N- k;j++) a[i][j]=′*′; } for(i=0;i<N;i++) { for(j=0;j<N;j++) printf("%c",a[i][j]); printf("\n"); } } 4.方法四
5.要充分利用离退教职工的教育资源库 离退休教职工群体是个 丰富的教育资源库。在离退休教职工中, 有专职政工干部, 有优秀班主 任、辅导员, 有“两课”教师, 有一大批教书育人的先进工作者。他们经 验丰富, 各有所长, 多有恋校情绪。可见, 充分利用这部分教育资源是 篇大文章, 而作这篇大文章却要大手笔。如今, 这篇文章并没怎么去 做。有些离退休人员能为新建民办院校, 二级学院所返聘担负重要工 作, 为什么他们最熟 悉 最 依 恋 的 学 校 却 不 能 利 用 他 们 呢 ? 建 议 “关 工
●
( 上接第 239 页) 3.将大学生的思想道德建设与学生的日常思想教 育相结合 这个结合应包含三个方面的内容: 一是将大学生的思想道 德建设与大学生的成才观教育紧密相联; 从学生一入校就着手抓大学 生的思想教育, 一年级进行系统理论教育, 对二、三年级的学生加强爱 国主义! 理想教育, 对四年级的学生将思想道德建设与择业观教育相 结合; 二是发挥高校党团组织的作用。共青团在做好团员青年的推优 工作的同时, 加强大学生团员的思想建设, 对政治上积极要求进步的 大学生进行引导, 进一步加强学生党员的教育; 三是发挥高校校园文 化在大学生思想道德建设中的重要作用, 通过开展丰富多彩的活动, 使学生在活动中增长知识, 提高素质。
委”协商有关部门 , 充 分 利 用 这 部 分 教 育 资 源 为 加 强 大 学 生 思 想 政 治 教育服务。一是有计划地组织他们进行调查研究, 总结典型经验, 就一 些重大问题提出咨询建 议 , 发 挥 “关 工 委 ”的 咨 询 作 用 , 二 是 组 织 一 些 人参与某些大学生思想政治教育工作, 比如搞专题讲座、座谈, 有条件 的 离 退 人 员 也 可 使 他 们 兼 任 班 主 任 、辅 导 员 的 某 些 工 作 。 随 着 即 将 开 始的事业单位人事制度改革的展开, “关工委”的工作不但大有可为, 而且必将大有作为。
240
科技信息
○综合论坛○
SC IE N C E IN F O R M A T IO N
2007 年 第 10 期
用自定义函数来实现。 先 用 二 重 循 环 结 构 输 出 如 下 图 案(2): **** ***** ****** ******* ****** ***** **** 图 案(2 ) 循环控制变量 i 控制行号, 循环控制变量 j 控制需打印的"*"的个 数。在这个二重循环中需要分析出每一行的行号和这 ' 一行需打印 的 "*" 号 的 个 数 的 关 系 。 再调用两个自定义函数, 用空格去覆盖相对于原图案的多余的" *" 号 。 这 两 个 自 定 义 函 数 分 别 是 在 打 印 下 三 角 和 上 三 角 的 空 格 图 案 。 在程序中调用了 clrscr 库函数和 gotoxy 库函数。函数 clrscr()清除整个 当前字符窗口, 并且把光标定位在左上角(1, 1)处。 在 本 程 序 中 函 数 gotoxy(1, 1)把 字 符 屏 幕 上 的 光 标 移 动 到 左 上 角 (1, 1)处。 要注意的是: 当屏幕用字符模式, 左上角坐标为(1, 1), 而在图形模 式下, 左上角坐标为(0, 0)。 这 个 程 序 只 有 在 显 示 器 才 显 示 图 案(1)的 效 果 , 如 果 用 打 印 机 打 印, 打印出来的就是图案(2)。这是因为显示器不能重叠显示, 而打印机 可以反映输出的过程和结果。 源程序: #include<conio.h> Main() { void spl(); void sp2(); int i,j,k; clrscr(); for(i=0;i<7;i++) { K=4+i; if(k>7)k=10- i; for(j=0;j<k;j++) printf("*"); printf("\n");
科技信息
○综合论坛○
SC IE N C E IN F O R M A T IO N
2007 年 第 10 期
用 C 语言打印图案的几种实现方法
陈 莹 张青锋 (周口师范学院计科系 河南 周口 466000)
摘要: 经过几年来在 C 语言教学中的实践, 总结并介绍了 4 种打印图案(1)的方法。这 4 种实现方法, 有助于加深对问题的理解和掌握。 关键词: C 语言; 程序; 图案; 循环; 函数
Sever al Realization Methods Of Using Language C To Pr int The Design Chen- ying Zhang- qingfeng
(Zhoukou Nor mal Univer sity Zhoukou Henan 466000) Abstr act: With experience in the Language C teaching for several years, the authors sum up and introduce four methods for finding the program of printout the design(1). The realization methods are helpful for und problems. Key wor ds: Language C; program; design; recurrence; function
打 印 图 案(1): * *** ***** ******* ***** *** *
图 案(1 ) 这 是 一 个 功 能 并 不 复 杂 的 程 序 。但 如 果 让 你 用 几 种 不 同 的 方 法 来 实现它, 也许还要费一番功夫。笔者经过一段时间的思考, 总结出 4 种 实现方法, 下面分别介绍一下。 1.方法一 直接用 printf 函数来实现。这个图案有 7 行, 调用一次 printf 函数 输出一行, 一共调用这个函数 7 次。这种方法是最直观的, 最简单, 但 是缺少技巧性。 源程序: main() { printf(" *\n"); printf("***\n"); printf("*****\n") prind("*******\n"); pnntf("*****\n"); printf("***\n") printf("*\n"); } 2.方法二 用二重循环结构来实现。先输出前 4 行, 后输出其余的 3 行的输 出; 每一行又分两部分输出, 先输出"*"号前的空格, 再输出"*"号。 注 意输出一行后, 需要换行一次。 源程序: main() { int i,j,k; for(i=0;i<=3;i++) { for(j=0; j<=2- i;j++) printf("*"); printf("\n"); } for(i=0;i<=2;i++) { for(j=0;j<=i;j++) printf("") for(k=0;k<=4- 2*i;k++) printf("*");