c语言while循环打印三角形
时间: 2023-11-19 11:53:46 浏览: 175
使用C语言的while循环打印正三角形,需要考虑到空格的数量,数字的数量和换行。可以参考以下代码:
```
#include <stdio.h>
int main() {
int i = 1, j, k, n;
printf("请输入三角形的行数:");
scanf("%d", &n);
while (i <= n) {
k = 1;
while (k <= n - i) {
printf(" ");
k++;
}
j = 1;
while (j <= 2 * i - 1) {
printf("%d", i);
j++;
}
printf("\n");
i++;
}
return 0;
}
```
该代码中,第一个while循环控制行数,第二个while循环控制空格的数量,第三个while循环控制数字的数量。在每一行输出完毕后,使用printf("\n")进行换行。
相关问题
c语言while循环输出倒三角形
这段C语言代码使用while循环输出倒三角形,具体实现方法是先根据输入的数字计算出需要输出的行数,然后分别输出上半部分和下半部分的倒三角形。其中,上半部分的行数从n开始递减,下半部分的行数从1开始递增。最后,还输出了中间三角形的角尖上的字符个数。
代码如下:
```
#include <stdio.h>
int main() {
int num, i, j, k;
char c;
scanf("%d %c", &num, &c);
int sum = 1; // 先假设需要sum个字符
int n = 0; // 给出的字符可以有n行的沙漏
while (sum <= num) {
sum += 2 * (2 * (n + 1) + 1);
n++; // 求出来的为上下两个倒三角形的行数,从0开始
}
for (i = n; i > 0; i--) {
for (j = 0; j < n - i; j++) {
printf(" ");
}
for (k = 0; k < 2 * i - 1; k++) {
printf("%c", c);
}
printf("\n");
} // 输出上半部分
for (i = 1; i < n; i++) {
for (j = 0; j < n - i - 1; j++) {
printf(" ");
}
for (k = 0; k < 2 * (i + 1) - 1; k++) {
printf("%c", c);
}
printf("\n");
} // 输出下半部分
printf("%d", (num - 2 * (n + n * (n - 1)) + 1)); // 运用了等差数列的前n项和公式来求。
// 因为2个n+n*(n-1)对于沙漏来说,中间三角形的角尖(1)被减了两次,所以要加回来。
return 0;
}
```
C语言do while循环三角形
在C语言中,利用do-while循环可以创建一个动态生成三角形的程序。do-while循环的特点是先执行一次循环体,然后根据条件判断是否继续循环。以下是一个简单的例子,用于打印星号(*)形成上下的等腰三角形:
```c
#include <stdio.h>
int main() {
int rows = 5; // 可以通过用户输入或其他方式设置行数
char symbol = '*'; // 使用星号作为默认字符
do {
for (int i = 1; i <= rows; i++) {
printf("%c", symbol); // 每行打印一个字符
if (i != rows) { // 如果不是最后一行
for (int j = i - 1; j > 0; j--) {
printf(" "); // 打印空格填充
}
}
printf("\n"); // 换行
}
rows--; // 逐行减少,直到结束
} while (rows >= 1);
return 0;
}
```
这个程序会先打印一行星号,然后检查剩余的行数是否大于0,如果是,则继续下一行的打印,同时在非最后一行前插入空格以保持三角形形状。当行数减到0时,do-while循环结束。
阅读全文