c语言打印菱形字母阵,麻烦真正的大婶来看看,用注释解释一下各行代码是什么意思,解释正确,我追加80财富

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言打印菱形字母阵,麻烦真正的大婶来看看,用注释解释一下各行代码是什么意思,解释正确,我追加80财富相关的知识,希望对你有一定的参考价值。

#include <stdio.h>#include <math.h>
int main(void)

int ROW;
int i, j;

char ch;
printf("input ROW:");
scanf("%d", &ROW);
ROW--;

for (i=-ROW; i<=ROW; i++)

ch = 'A';
for (j=0; j<=2*ROW-abs(i); j++)

if (abs(i) > j)

printf(" ");

else if (ROW > j)

printf("%c", ch++);

else if (ROW == j)

printf("%c", ch--);

else if (2*ROW-abs(i) >= j)

printf("%c", ch--);


printf("\n");


return 0;

#include <stdio.h>#include <math.h> //include标准库文件:输入输出、数学运算库
int main(void)

int ROW; //行
int i, j;

char ch;
printf("input ROW:"); //屏幕输入提示行数
scanf("%d", &ROW); //从键盘获取输入
ROW--; //行数减一(因包含第‘0’行,且菱形上下对称,故减一。。)

for (i=-ROW; i<=ROW; i++) //从-Row行开始,到Row行结束,处理每一行

ch = 'A';
for (j=0; j<=2*ROW-abs(i); j++) //菱形形状特点为第0行有2*Row个位置,第Row行有2*Row-//Row=Row个位置点,其余行以此类推,处理每一行的长度数

if (abs(i) > j) //第i行的前i-1个位置为空格(想想倒菱形形状特点)

printf(" ");

else if (ROW > j) //在此行第一个需打印菱形的地方开始,依次打印字母ABCD。。知道该行正//中点位置(见下行解释。。)

printf("%c", ch++);

else if (ROW == j) //(接上行解释)因Row为总行数,故Row=j时为当前行的中点处打印字母

printf("%c", ch--);

else if (2*ROW-abs(i) >= j)//超过半行位置则逐个打印字母并递减字母

printf("%c", ch--);


printf("\n"); //完成当前行,开始下一行


return 0;

效果:
比如Row=4则效果如下:
A
ABA
ABCBA
ABCDCBA
ABCBA
ABA
A

希望对你有帮助。
参考技术A #include <stdio.h>#include <math.h> //头文件
int main(void) //主函数,没有参数

int ROW; //定义字母个数
int i, j; //一些变量
char ch; //用于控制输出的变量
printf("input ROW:");
scanf("%d", &ROW); //输入字母个数
ROW--; //字母个数自减1
for (i=-ROW; i<=ROW; i++) //打印字母个数*2-1行(行数从负的到正的)

ch = 'A'; //每行开关是A
for (j=0; j<=2*ROW-abs(i); j++) //每行打印打印字母个数*2-i个字符

if (abs(i) > j) //如果行数绝对值>列数

printf(" "); //打印一个空格

else if (ROW > j) //未打印到对称点时

printf("%c", ch++); //输出ch值,并自加1(变成下一个字母)

else if (ROW == j) //到对称点时

printf("%c", ch--); //输出ch值,并自减1(变成上一个字母)

else if (2*ROW-abs(i) >= j) //超过对称点时

printf("%c", ch--); //输出ch值,并自减1(变成上一个字母)


printf("\n"); //换行

return 0; //主函数返回

sdustoj 打印字母菱形图案

Problem B: 打印字母菱形图案

Time Limit: 1 Sec  Memory Limit: 16 MB
Submit: 2530  Solved: 1769
[Submit][Status][Web Board]

Description

输出N(N为奇数)行由字母组成的菱形,第1行为字母A,第2行为BCD,第三行为CDEFG,以此类推。菱形上下对称。

Input

一个奇数N。0<N<18。

Output

 N行字母组成的菱形图案。

Sample Input

7

Sample Output

     A
   BCD
 CDEFG
DEFGHIJ
 CDEFG
   BCD
     A

HINT

Append Code

 

 

 

其实就是简单的金字塔输出,唯一不同的时每行的首字母有变化,所以只要重点注意这一点就好了。

 

 1 #include<stdio.h>
 2 #include<math.h>
 3 #include<string.h>
 4 #include<ctype.h>
 5 int main()
 6 {
 7     int m;
 8     scanf("%d",&m);
 9     int i,j;
10     int k;
11     for(j=0;j<(m+1)/2;j++)
12     {
13     for(i=0;i<(m+1)/2-1-j;i++)
14         printf(" ");
15       for(k=j;k<j*3+1;k++)
16         printf("%c",A+k);
17       printf("\n");
18     }
19     for(j=(m+1)/2-2;j>=0;j--)
20     {
21         for(i=(m+1)/2-2-j;i>=0;i--)
22             printf(" ");
23         for(k=j;k<j*3+1;k++)
24             printf("%c",A+k);
25       printf("\n");
26     }
27  
28 }

 

以上是关于c语言打印菱形字母阵,麻烦真正的大婶来看看,用注释解释一下各行代码是什么意思,解释正确,我追加80财富的主要内容,如果未能解决你的问题,请参考以下文章

C语言打印图中两点之间的所有路径,不是最短路径!!!谢谢高手麻烦帮忙 代码要实现哈!

C语言 用星号*打印菱形或其他图形 详解

C语言谁能帮我写个for循环给二维数组赋值

ZZNUOJ_用C语言编写程序实现1380:打印图形(附完整源码)

求用C语言打印出1 123 12345 1234567 123456789这样的等腰三角形的程序是啥

调皮的js