【问题标题】:C Console - Printing pattern on the same lineC Console - 在同一行打印图案
【发布时间】:2016-04-02 03:46:01
【问题描述】:

由于我是初学者并想了解更多信息,因此我正在尝试不同的活动。我正在尝试在我的代码所在的同一行上打印一个模式:

int main()
{
    int numOfWiggles;
    int count;
    printf("Enter number of wiggles: ");
    scanf("%d", &numOfWiggles);
    printf("_");
    for (count=1; count<=numOfWiggles; count++)
    {
        printf("/\\ \n   \\/ \r");
    }
    printf("-");
}

已编辑。

但我不希望将它们放在新行上,而是希望该模式仅在同一行上延伸。我知道这是因为\n但我不知道如何将它们全部放在同一条线上。

【问题讨论】:

  • 你需要 2 个 for 循环。第一个打印上半部分,第二个打印下半部分。

标签: c console


【解决方案1】:

你可以把它分成上下两部分。
打印上半部分使用:

for (count=1; count<=numOfWiggles; count++)
{
    printf("/\\  ");  //this will print /\  /\  /\
}
printf("\n  ");   // go to next line

打印下半部分使用:

for (count=1; count<=numOfWiggles; count++)
{
    if(count == numOfWiggles)
        printf(" \\/");  // this will print last \/ without space at the end
    else
        printf(" \\/ ");  // this will print \/ \/ \/
}

您正在使用'\n',它将光标位置移至下一行并从下一行开始打印,这是问题所在。

【讨论】:

    【解决方案2】:

    您要查找的结果实际上是在两条不同的行上进行两次打印的结果。您可以使用缓冲区在同一个循环中构造字符串,或者只使用两个循环。

    for (count = 0; count <  numOfWiggles; count++)
    {
        If (count == 0)
            Printf ("_/\");
        Else
            Printf ("  /\");
        Printf ("  _/n");
    }
    
    for (count = 0; count <  numOfWiggles; count++)
    {
        If (count == 0)
            Printf ("   \/");
        Else
            Printf ("  \/");
        Printf ("/n");
    }
    

    【讨论】:

    • 这也有效,欣赏它,一种有趣的方式
    猜你喜欢
    • 1970-01-01
    • 2014-03-19
    • 2014-12-08
    • 2019-09-07
    • 2018-03-20
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    相关资源
    最近更新 更多