我最近刚开始尝试通过 Wikibooks 上的教程学习 C。我已阅读开头列出的 C 页 here并且正在尝试做练习。关于循环的第二个问题我遇到了问题:其中我正在尝试创建一个函数来输出由 * 字符行组成的三角形,其中高度为 2n-1 如果宽度为 n。我的第一个想法是制作一个嵌套循环,其外部将为行号创建一个变量,并将其与最大高度进行比较。内部循环将创建一个变量,该变量本质上用作该特定行中 * 字符的索引。我的问题是我不知道如何处理最大宽度减小后的线条。谁能指出我正确的方向?这是我的代码:
#include <stdio.h>
void triangle(int);
int main() {
int width;
printf("%s", "Please enter a width for your triangle: ");
scanf("%d", & width);
triangle(width);
return 0;
}
void triangle(int width) {
for (int line = 1; line <= (2 * width) - 1; line++) {
for (int i = 0; i < line && i < width; i++) {
printf("%s", "*");
}
printf("%s", "\n");
}
}
最佳答案
试试这个:
void triangle(int width) {
int line, i, rev = 0;
for (line = 1; line < width; ++line) {
for (i = 0; i < line && i < width; i++) {
printf("*");
}
printf("\n");
}
for (; line; --line) {
for (i = 0; i < line && i < width; i++) {
printf("*");
}
printf("\n");
}
}
关于c - 带 C 的简单 I/O 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49342761/