【问题标题】:Drawing a triangle using a for loop使用 for 循环绘制三角形
【发布时间】:2014-11-07 15:43:05
【问题描述】:

这是我的问题。 仅使用字符 * 和 + 您需要形成宽度为 m 和高度为 n (m http://prntscr.com/53xv5s 的示例。

#include <stdio.h>

int main ()
{
int m, n, i, j;
scanf ("%d %d", &m, &n);
for (i=0; i<m; i++)
{
    printf ("+");
    for (j=n-1; j>0; j--)
    {
        printf ("*");            
    }
    printf ("\n");    
}    
return 0;
}

关于如何修复它的任何帮助?到目前为止我得到的是这个 http://prntscr.com/53xvq2

【问题讨论】:

  • 这是一道作业题吗?
  • 这是一个简单的问题,所以你可以一步一步地解决它。无论如何,printf("+") 只为每一行打印一个加号。您需要两个独立的内部循环,一个用于+,一个用于+,或者您需要一个条件来决定内部循环内的+*。显然,这两种变体都要求您使用当前行 i 作为标准。
  • 感谢您的帮助,不,这不是家庭作业,而是考试的练习题。
  • 这不是等腰三角形(其中每条腿的长度相同,夹角均为 60 度。)
  • @user3629249:它是一个等腰三角形,它有两条等长的边。你的意思是等边三角形。

标签: c loops for-loop


【解决方案1】:

这应该适合你:

#include <stdio.h>

int main () {
    int row, column, rowCount, columnCount;

    printf("Enter row and column length: \n>");
    scanf (" %d %d", &row, &column);

    for (rowCount = 0; rowCount < row; rowCount++) {

        for (columnCount = 0; columnCount < column; columnCount++) {

            if(columnCount <= rowCount)
                printf ("+");
            else
                printf ("*");
        }

        printf ("\n");
    }

    return 0;

}

【讨论】:

    【解决方案2】:

    尝试:

    #include <stdio.h>
    int main ()
    {
    int m, n, i, j;
    scanf ("%d %d", &m, &n);
    for (i=0; i<m; i++)
    {
        for (j=0; j<n; j++)
        {
            if(j <= i)
                printf ("+");
            else
                printf ("*");
        }
        printf ("\n");
    }
    return 0;
    }
    

    这样它总是会打印 n 个字符和 n 行 每行都以 i + 开头并以 * 结尾

    【讨论】:

    • @marija 很高兴听到这是考试的练习题,因为我在第一年的期中考试中遇到了这个确切的问题。祝考试顺利!
    猜你喜欢
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2016-02-21
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多