![](/img/trans.png)
[英]How to check if input array has a number, add 1 to it's corresponding index location in output array?
[英]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.