繁体   English   中英

如何为每个数字输入添加一个 output?

[英]How to add an output for each number input?

我的任务是编写一个简短的程序,该程序将允许输入 1-50 的数字,从该数字中,一个由星号组成的三角形将 output 很多层高。 例如,输入 2 将 output 一个 * 三角形,顶部有一个 *,第二行有两个 * 在底部,输入 3 将 output 一个 * 三角形,顶部有一个 *,第二行中间有两个 *,然后是底部的第三行三个 *,依此类推。 我知道一种方法可以通过为每个数字 1-50 制作一个嵌套的 if 门来做到这一点,但我想知道是否有更有效的方法来做到这一点?

我知道一种方法可以通过为每个数字 1-50 制作一个嵌套的 if 门来做到这一点,但我想知道是否有更有效的方法来做到这一点?

#include <stdio.h>
#include <stdlib.h>
int main(void) 
{
    //gather user input
int triNum;
char a;
scanf("%i", &triNum);
    //make sure input is <= 50
if(triNum <= 50)
{
    if(triNum == 1)
    {
        printf("*");
    }
    if (triNum == 2)
    {
        a = '*';
        printf("*\n");
        printf("*%c\n", a);
    }
}
    return 0;
}

在对每个单独的数字进行编码时,没有实际的错误消息,我只是想知道一种更有效的方法吗?

您可能会想要为此使用循环,如下面的程序所示。 那么你就不需要分别对待每个案例了。

#include <stdio.h>

int main(void)
{
    int h, i, j;

    printf("What is the height of the triangle? ");
    scanf("%d", &h);

    for (i = 0; i < h; ++i) {
        for (j = 0; j <= i; ++j)
            printf("*");
        printf("\n");
    }

    return 0;
}

对于给定的高度h ,该程序在h行上循环,并在每行中输出h星号字符。 例如,对于h占用 1、2、3 和 5,output 如下所示。

What is the height of the triangle? 1
*

What is the height of the triangle? 2
*
**

What is the height of the triangle? 3
*
**
***

What is the height of the triangle? 5
*
**
***
****
*****

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM