c语言while输出等腰三角形
时间: 2023-10-13 20:04:54 浏览: 135
以下是使用C语言while循环输出等腰三角形的代码:
```
#include <stdio.h>
int main() {
int i = 1, j, n;
printf("Enter the number of rows: ");
scanf("%d", &n);
while (i <= n) {
j = 1;
while (j <= n - i) {
printf(" ");
j++;
}
j = 1;
while (j <= 2 * i - 1) {
printf("*");
j++;
}
printf("\n");
i++;
}
return 0;
}
```
这段代码中,首先通过`scanf`函数获取用户输入的行数`n`。然后使用两个嵌套的`while`循环来实现输出等腰三角形的功能。外层循环控制行数,内层循环分别用于输出每一行的空格和星号。具体实现过程中,需要注意每一行星号的数量与行号之间的关系,即第`i`行星号数量为`2 * i - 1`。
相关问题
如何用c语言while写等腰三角形
在C语言中,你可以使用while循环来打印等腰三角形。下面是一个简单的例子,假设我们要打印一个由用户指定行数n的等腰三角形:
```c
#include <stdio.h>
int main() {
int n, i, j;
printf("请输入三角形的行数: ");
scanf("%d", &n);
// 当三角形的行数大于0时,继续打印
while (n > 0) {
// 打印空格填充
for (j = 1; j <= n - i; j++) {
printf(" ");
}
// 打印星号字符
for (j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
// 换到下一行,减少左边的空格
if (i != 1) {
printf("\n");
}
// 减少当前行数
i++;
n--;
}
return 0;
}
```
在这个程序中,外层while循环控制总的行数,内层两个for循环分别负责打印左侧的空格和中间的星号。随着循环的进行,星号的数量会逐渐增加,形成等腰三角形的效果。
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;
}
```
阅读全文