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;
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 MBSubmit: 2530 Solved: 1769
[Submit][Status][Web Board]
Description
输出N(N为奇数)行由字母组成的菱形,第1行为字母A,第2行为BCD,第三行为CDEFG,以此类推。菱形上下对称。
Input
一个奇数N。0<N<18。
Output
N行字母组成的菱形图案。
Sample Input
Sample Output
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语言打印图中两点之间的所有路径,不是最短路径!!!谢谢高手麻烦帮忙 代码要实现哈!
ZZNUOJ_用C语言编写程序实现1380:打印图形(附完整源码)