题目:
多组输入一个整数(2~20),表示直角三角形直角边的长度,即 * 的数量,也表示输出行数。
思路:
总体思路:
找到规律:
行数 + 列数 < 三角形长度 - 1
打印 两个空格(题目要求带空格的三角形)
其它情况下打印*号和空格(题目要求带空格的三角形)
使用 while循环 进行多组输入
输入后整数后,使用 for循环打印行
再内嵌一个 for循环打印列:
如果
行数 + 列数 < 三角形长度 - 1
则打印两个空格
否则打印 *号+空格
打印一行后进行 换行
比较简单,直接一步到位:
(1).
使用 while循环 进行多组输入
(2).
输入后整数后,使用 for循环打印行
(3).
再内嵌一个 for循环打印列:
如果
行数 + 列数 < 三角形长度 - 1
则打印两个空格
否则打印 *号+空格
(4).
打印一行后进行 换行
实现代码:
#include <stdio.h> int main() { int n = 0; //直角三角形边的长度,"*"的数量,输出行数 //多组输入: while (scanf("%d", &n) == 1) { int i = 0; //行 int j = 0; //列 //使用 for循环 打印行 for (i = 0; i < n; i++) { //内嵌 for循环 打印列 for (j = 0; j < n; j++) { //如果 行数+列数 < 三角形长度 - 1 //打印 两个空格: if (i+j < n-1) { printf(" "); } else { //其它情况打印 *号+空格: printf("* "); } } //打印完一行后进行换行: printf("\n"); } } return 0; }
实现图片:
最终代码和实现效果
最终代码:
#include <stdio.h> int main() { int n = 0; //直角三角形边的长度,"*"的数量,输出行数 //多组输入: while (scanf("%d", &n) == 1) { int i = 0; //行 int j = 0; //列 //使用 for循环 打印行 for (i = 0; i < n; i++) { //内嵌 for循环 打印列 for (j = 0; j < n; j++) { //如果 行数+列数 < 三角形长度 - 1 //打印 两个空格: if (i+j < n-1) { printf(" "); } else { //其它情况打印 *号+空格: printf("* "); } } //打印完一行后进行换行: printf("\n"); } } return 0; }
实现效果: