首页 > 解决方案 > 如何创建具有重复功能的向上三角形

问题描述

我正在尝试创建一个向上三角形函数,该函数利用我已经完成的一个函数,该函数获取一个字符并按你想要的次数打印它。

我想先澄清一下,这是家庭作业。我遇到了一些墙壁,只需要一点指导。

向上三角形示例:

*
**
***
****

我知道如何在没有其他函数的情况下创建向上三角形函数:

void utri( int tricount )
{
    int uptri, x;
    char star;
    star = '*';
    for ( uptri = 1; uptri <= tricount; uptri++ )
    {
        for ( x = 0; x < uptri; x++ )
        {
                printf ("%c", star);
        }
        printf("\n");
    }
}

但我很难想出一个合乎逻辑的方法。我正在尝试创建一个向上的三角形,它将利用下面的重复功能。

这是我想用来创建向上三角形函数的重复函数:

void rept( int alot, char sym )
{
    int z;

    for ( z = 0; z < alot; z++ )
        printf("%c", sym);

    printf("\n");
}

测试输出时,这是我要使用的调用:

utri(4);

标签: carraysstringfunctioncharacter

解决方案


您所要做的就是用for您必须使用的新函数替换内部循环,并将正确的变量传递给函数,方法是将它们相应地放入函数调用中,例如:rept(uptri, star);.

uptri传递给rept()and 是该范围内命名的变量int alot(循环将运行的次数),并且是将打印star的字符,并且是在的范围内命名的变量。如果您不熟悉计算机编程,“范围”只是指可以看到该变量的程序的哪个部分。因此,在使用函数调用将它们的值传递给它之前,看不到变量。一旦发生这种情况,使用这些变量并将它们的值分配给它自己范围内的变量:和.charrept()char symreptreptuptristarrept(uptri, star);reptalotsym

代码

void utri( int tricount )
{
    int uptri, x;
    char star;
    star = '*';
    for ( uptri = 1; uptri <= tricount; uptri++ )
    {
        rept(uptri, star);
    }
}

推荐阅读