c语言while输出等腰三角形
时间: 2023-10-13 19:04:54 浏览: 86
以下是使用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开始递减,下半部分的行数从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语言while输出三角形
以下是一个使用 while 循环输出三角形的 C 语言示例代码:
```c
#include <stdio.h>
int main() {
int rows, i = 1, j = 1;
printf("输入要输出的行数:");
scanf("%d", &rows);
while (i <= rows) {
j = 1;
while (j <= i) {
printf("* ");
j++;
}
printf("\n");
i++;
}
return 0;
}
```
这个程序会要求用户输入要输出的行数,然后使用两个 while 循环来实现三角形的输出。外层循环控制行数,内层循环控制每一行中的星号数量。在每行输出完毕后,程序会自动换行。