用C++字符 打印输出 从字符A开始 递减 递增的沙漏图形
效果和代码如下
/*
+++++++++++++++++++++++++++++++++++++++++++++++++++++
n=11
ABCDEFGHIJK i=0 line=57
BCDEFGHIJ i=1 line=57
CDEFGHI i=2 line=57
DEFGH i=3 line=57
EFG i=4 line=57
F i=5 line=57
EFG i=1 line=81
DEFGH i=2 line=81
CDEFGHI i=3 line=81
BCDEFGHIJ i=4 line=81
ABCDEFGHIJK i=5 line=81
+++++++++++++++++++++++++++++++++++++++++++++++++++++
n=10
ABCDEFGHIJ i=0 line=57
BCDEFGHI i=1 line=57
CDEFGH i=2 line=57
DEFG i=3 line=57
EF i=4 line=57
DEFG i=1 line=81
CDEFGH i=2 line=81
BCDEFGHI i=3 line=81
ABCDEFGHIJ i=4 line=81
+++++++++++++++++++++++++++++++++++++++++++++++++++++
n=7
ABCDEFG i=0 line=57
BCDEF i=1 line=57
CDE i=2 line=57
D i=3 line=57
CDE i=1 line=81
BCDEF i=2 line=81
ABCDEFG i=3 line=81
+++++++++++++++++++++++++++++++++++++++++++++++++++++
n=13
ABCDEFGHIJKLM i=0 line=57
BCDEFGHIJKL i=1 line=57
CDEFGHIJK i=2 line=57
DEFGHIJ i=3 line=57
EFGHI i=4 line=57
FGH i=5 line=57
G i=6 line=57
FGH i=1 line=81
EFGHI i=2 line=81
DEFGHIJ i=3 line=81
CDEFGHIJK i=4 line=81
BCDEFGHIJKL i=5 line=81
ABCDEFGHIJKLM i=6 line=81
+++++++++++++++++++++++++++++++++++++++++++++++++++++
n=12
ABCDEFGHIJKL i=0 line=57
BCDEFGHIJK i=1 line=57
CDEFGHIJ i=2 line=57
DEFGHI i=3 line=57
EFGH i=4 line=57
FG i=5 line=57
EFGH i=1 line=81
DEFGHI i=2 line=81
CDEFGHIJ i=3 line=81
BCDEFGHIJK i=4 line=81
ABCDEFGHIJKL i=5 line=81
*/
// 沙漏.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include<Windows.h>
char* 生成字符串(OUT char* Astr,char A,int n)
{
Astr = A;
//返回从字符 "?"相临的N个字符
for (int i = 1; i < n; i++)
{
Astr = A+i;
}
Astr = '\0';
return Astr;
}
char* 生成空格(OUT char* spacebuf,int n)
{
//返回从字符 "?"相临的N个字符
for (int i =0; i < n; i++)
{
spacebuf = ' ';
}
spacebuf = '\0';
return spacebuf;
}
int main()
{
char spacebuf = { 0 };
char Astr = { 0 };
int n = 10;
while(1)
{
scanf_s("%d", &n);
if (n > 30) return n;
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n");
printf("n=%d \r\n", n);
int 空格数量 = 0;
int 字符数量 = n - (空格数量 * 2);
//空格递减
{
int i = 0;
for ( 空格数量 = 0; 空格数量 <= n; 空格数量= 空格数量 +1)
{
字符数量 = n - (空格数量 * 2);
生成字符串(Astr, 'A' + 空格数量, 字符数量); //字符是按2个递减的 所以要乘2
if (字符数量 <= 0) break;
printf("%s%s i=%d line=%d\r\n", 生成空格(spacebuf,空格数量), Astr,i++,__LINE__);
}
}
{ //++++++++++++++++++++++++++++++++++++++++++
//如果沙漏中间字符不重复 可以添加以下2行
空格数量 = 空格数量 - 1; //空格数量按1递减
字符数量 = 字符数量 + 2; //字符数量按2弟增
}
//空格递增
{
int i = 0;
for (int i = 1; i<=(n)/2;i++)
{
空格数量 = 空格数量 - 1; //空格数量按1递减
字符数量 = 字符数量 + 2; //字符数量按2弟增
if (字符数量>n) break;
生成字符串(Astr, 'A' + 空格数量, 字符数量);
printf("%s%s i=%d line=%d\r\n", 生成空格(spacebuf, 空格数量), Astr, i, __LINE__);
}
}
}
while (1)
getchar();
}
// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单
// 入门使用技巧:
// 1. 使用解决方案资源管理器窗口添加/管理文件
// 2. 使用团队资源管理器窗口连接到源代码管理
// 3. 使用输出窗口查看生成输出和其他消息
// 4. 使用错误列表窗口查看错误
// 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
// 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件
+++++++++++++++++++++++++++++++++++++++++++++++++++++
n=11
ABCDEFGHIJK i=0 line=57
BCDEFGHIJ i=1 line=57
CDEFGHI i=2 line=57
DEFGH i=3 line=57
EFG i=4 line=57
F i=5 line=57
EFG i=1 line=81
DEFGH i=2 line=81
CDEFGHI i=3 line=81
BCDEFGHIJ i=4 line=81
ABCDEFGHIJK i=5 line=81
+++++++++++++++++++++++++++++++++++++++++++++++++++++
n=10
ABCDEFGHIJ i=0 line=57
BCDEFGHI i=1 line=57
CDEFGH i=2 line=57
DEFG i=3 line=57
EF i=4 line=57
DEFG i=1 line=81
CDEFGH i=2 line=81
BCDEFGHI i=3 line=81
ABCDEFGHIJ i=4 line=81
+++++++++++++++++++++++++++++++++++++++++++++++++++++
n=7
ABCDEFG i=0 line=57
BCDEF i=1 line=57
CDE i=2 line=57
D i=3 line=57
CDE i=1 line=81
BCDEF i=2 line=81
ABCDEFG i=3 line=81
+++++++++++++++++++++++++++++++++++++++++++++++++++++
n=13
ABCDEFGHIJKLM i=0 line=57
BCDEFGHIJKL i=1 line=57
CDEFGHIJK i=2 line=57
DEFGHIJ i=3 line=57
EFGHI i=4 line=57
FGH i=5 line=57
G i=6 line=57
FGH i=1 line=81
EFGHI i=2 line=81
DEFGHIJ i=3 line=81
CDEFGHIJK i=4 line=81
BCDEFGHIJKL i=5 line=81
ABCDEFGHIJKLM i=6 line=81
+++++++++++++++++++++++++++++++++++++++++++++++++++++
n=12
ABCDEFGHIJKL i=0 line=57
BCDEFGHIJK i=1 line=57
CDEFGHIJ i=2 line=57
DEFGHI i=3 line=57
EFGH i=4 line=57
FG i=5 line=57
EFGH i=1 line=81
DEFGHI i=2 line=81
CDEFGHIJ i=3 line=81
BCDEFGHIJK i=4 line=81
ABCDEFGHIJKL i=5 line=81
页:
[1]