|
发表于 2023-12-25 00:34:54
|
查看: 1984 |
回复: 1
效果和代码如下
/*
+++++++++++++++++++++++++++++++++++++++++++++++++++++
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[0] = A;
- //返回从字符 "?"相临的N个字符
- for (int i = 1; i < n; i++)
- {
- Astr[i] = A+i;
- }
- Astr[n] = '\0';
- return Astr;
- }
- char* 生成空格(OUT char* spacebuf, int n)
- {
- //返回从字符 "?"相临的N个字符
- for (int i =0; i < n; i++)
- {
- spacebuf[i] = ' ';
- }
- spacebuf[n] = '\0';
- return spacebuf;
- }
- int main()
- {
- char spacebuf[256] = { 0 };
- char Astr[2048] = { 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 文件
复制代码
|
游戏安全课程 学员办理咨询联系QQ150330575 手机 139 9636 2600 免费课程 在 www.bilibili.com 搜 郁金香灬老师
|
|