c - 带 C 的简单 I/O 功能

标签 c

我最近刚开始尝试通过 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/

相关文章:

c - 如何在 C 中编写线程安全、高效、无锁的内存分配器?

c - wdm.h中类型名称 'R'中的 'PRKMUTEX'是什么意思?

c - 具有互斥资源的多线程程序

字符串堆栈的 C 问题

java - 指向作为 JNA 方法参数的结构数组的指针

c - 如果从文件输入中获取,为什么不\n 生成一个新行字符?

c - 在缓冲区中高效地查找序列

c - 当返回类型为 int * 时返回 int 数组

c - 删除C中字符串中出现的每个\n

c - 如何为 SWIG 创建接口(interface)文件