控制台文字矩阵、菱形排列(充分展示用逻辑替代内循环的处理技巧)
来源:互联网 发布:王者荣耀优化安卓7.0 编辑:程序博客网 时间:2024/06/04 19:08
那个矩阵排列确费不少脑力哦,菱形用数组倒序填,这些例子都是给初学参考。
var 数组 = Enumerable.Repeat(0, 7).ToArray(); string[] 字符组 = new string[7]; int 数 = 7, 序 = 0, 填 = 0; foreach (var 矩 in Enumerable.Range(1, 7)) { if (矩 <= 4) 填++; else 填--; foreach (var 阵 in Enumerable.Range(序, 数)) { 数组[阵] = 填; 字符组[阵] = " 阿弥陀佛"[填].ToString(); } if (矩 < 4) { 数 -= 2; 序++; } else { 数 += 2; 序--; } //Console.WriteLine(string.Join(" ", 数组)); Console.WriteLine(string.Concat(字符组)); }
菱形
string 啊啊啊 = ""; string[] 啊啊 = new string[15]; foreach (var 啊 in Enumerable.Range(1, 8)) { 啊啊[啊 - 1] = " ".Remove(8 - 啊) + 啊啊啊 + "☆\r"; 啊啊[15 - 啊] = " ".Remove(8 - 啊) + 啊啊啊 + "☆\r"; 啊啊啊 += "☆"; } foreach (var 啊啊啊啊 in 啊啊) Console.WriteLine(啊啊啊啊);
c++
int 层(8), 数(1), 计(8);do{if (计 > 数) cout << " ";elsecout << " " << 数;if (!--计){cout << endl;计 = 8;数++;层--;}} while (层);层 = 计 = 7; 数 -= 2;do{if (计 == 7)cout << " ";if (计 > 数)cout << " ";elsecout << " " << 数;if (!--计){cout << endl;计 = 7;数--;层--;}} while (层);
优化代码:
int 层(8), 数(1), 计 = 层; bool 控制(false);do/*数字菱形*/{if (控制)if (计 == 7)cout << " ";if (计 > 数) cout << " ";elsecout << " " << 数;if (!--计){cout << endl;计 = 控制 ? 7 : 8;控制 ? 数-- : 数++;层--;}if (!控制)if (!层){控制 = true;层 = 计 = 7;数 -= 2;}} while (层);
点击打开链接
/*C语言基础:for循环嵌套,这段代码该怎样写更简练*/int i, j, k, z;for (i = 0, z = -4; ; ++i, z++){if (z > 0) i -= 2;for (k = 0; k <= 3 - i; ++k)printf_s(" ");for (j = 0; j <= 2 * i; ++j)printf_s("*");printf_s("\n");if (i == 0 && z > 0)break;}
VB:
'2-9范围内自动生成菱形 Dim 数 = 9, 个 = 0, 空格 = String.Join(" ", New String(数) {}) For 序 As Integer = 1 To 数 Step 1 空格 = 空格.Remove(空格.Length - 1) Console.WriteLine(空格 + String.Join("", Enumerable.Repeat(序, 序 + 个))) 个 += 1 Next 个 -= 1 For 序 As Integer = 数 - 1 To 1 Step -1 空格 += " " 个 -= 1 Console.WriteLine(空格 + String.Join("", Enumerable.Repeat(序, 序 + 个))) Next
c++字符数组形式:
/*用C++编写程序,用数组char a[][]显示宽瘦菱形,设置维度公式第一项值,如果显示数字则在2-9单字范围,如果显示单字符则任意长度范围内自动生成*/const int 维(9 * 2 - 1);int 数(0), 计(0), 反(维 - 1), 层((维 + 1) / 2);char 菱形[维][维] = { {} };do{菱形[计][数] = (数 + 计 < 层 - 1 || 数 + 计 >= 层 + 计 + 计) ? ' ' : '*';if (计 <= !(层 % 2) ? 层 / 2 : 层 / 2 + 1)菱形[反 - 计][数] = 菱形[计][数];/*生成反向*/if (++数 >= 维){数 = 0;计++;}} while (计 < 层);数 = 计 = 0;do{std::cout << 菱形[计][数];if (++数 >= 维){std::cout << std::endl;数 = 0;计++;}} while (计 < 维);数 = 计= 0;do{std::cout << 菱形[计][数] << " ";/*拉宽*/if (++数 >= 维){std::cout << std::endl;数 = 0;计++;}} while (计 < 维);
输出倒梯形
cout << endl;int 层(7), 计(7), 数(7);do{if (计 == 7)cout << " ";if (计 > 数)cout << " ";elsecout << "**";if (!--计){cout << endl;计 = 7;数--;层--;}} while (层 > 1);cout << endl;
按输入的整数输出图形的2种写法
int 输入整数(0), 层(8), 数(1), 计(8);std::cin >> 输入整数;层 = 计 = 输入整数;do{cout << (计 > 数 ? " " : "* ");//cout << (计 > 数 ? " " : "*") << (计 > 数 - 1 ? "" : "*");if (!--计){cout << endl;计 = 输入整数;数++;层--;}} while (层);
int 位(5), 个(1), 数(0), 量(18), 起(0), 转(1);cout << "http://ask.csdn.net/questions/338810 java只用两个for循环输出N个菱形。请输入层数:" << endl;cin >> 量;//do//{//cout << ((数 < 位 || 数 >= 位 + 个) ? " " : "*");//if (++数 > 10)//{//cout << endl;//数 = 0;//++起;//位 += 转 ? -1 : 1;//个 += 转 ? 2 : -2;//}//if (位 <= 0 && 转) 转 = 0;//if (位 >= 5 && !转) 转 = 1;//} while (起 < 量);for (起 = 0; 起 < 量; 起++){for (数 = 0; 数 <= 10; 数++)cout << ((数 < 位 || 数 >= 位 + 个) ? " " : "*");cout << endl;位 += 转 ? -1 : 1;个 += 转 ? 2 : -2;if (位 <= 0 && 转) 转 = 0;if (位 >= 5 && !转) 转 = 1;}
1 0
- 控制台文字矩阵、菱形排列(充分展示用逻辑替代内循环的处理技巧)
- 36 用循环处理文字
- 使用矩阵运算替代 for 循环实现信号的DTFT
- 菱形内的计数
- 用JAVA 的for循环输出 菱形
- 排列数据的输出(二) 循环处理
- 矩阵不可逆的充分必要条件
- 关于一些业务逻辑的处理技巧
- 实对称矩阵为正定矩阵的一个充分必要条件
- java中只用三个循环在控制台输出菱形
- Java利用循环,在控制台打印出菱形。
- 36-用循环处理文字-血型统计
- 第三十七讲|用循环处理文字
- 文字超出的部分用...展示
- 用纯JavaScript替代jQuery的技巧
- 用纯JavaScript替代jQuery的技巧
- 在控制台打印一个空心的菱形
- 根据用户需要输出打印菱形,用for循环输出打印星号组成的菱形
- ALAsset是什么?
- ruby on rails 4 中利用 remote:true 实现 ajax ,小记
- jQuery.validate插件
- VI(VIM) using
- ImageLoader must be init with configuration before using 错误解决方法
- 控制台文字矩阵、菱形排列(充分展示用逻辑替代内循环的处理技巧)
- 面试题-交通灯
- Mahout推荐算法API详解
- android 布局 控件 焦点冲突问题
- 归并排序
- 面试题-银行调度系统
- 开博了
- 如何将Java项目打包成批处理文件
- robotium整理(ID查找、相同ID区分、listview下拉刷新等)