2013-10-04 179 views
-5

我需要创建一个三角形这样创建一个三角形

* 
** 
*** 
**** 
***** 

我已经做到了这一点。但我的三角形看起来不是这样的:

#include <stdio.h> 

int main() 
{ 
    int k, l; 

    for(k=1; k<=5; k++) 
    { 
     for(l=k; l<=5; l++) 
      printf(" "); 

     for(l=0; l<=k-1; l++) printf("*"); 
     printf("\n"); 
    } 
    return 0; 
} 

你会告诉我我的错误在哪里吗?

+6

许多重复,例如[绘制三角形使用星号](http://stackoverflow.com/questions/12711553/drawing-triangle-using-asterisks)和[打印星号“三角形”](http://stackoverflow.com/questions/9244912/打印一个三角形的星号) - 这似乎是每年都会出现的常见作业问题。 –

+2

@PaulR在新学期开始的时候,每年约10次,更准确一些。 –

+4

他仍然在代码中表现出自己的努力,并要求出现错误。通过投票赞赏那些只是要求别人去做他们的任务的人。 – fayyazkl

回答

3

你并不需要3个循环 - 这是不必要的:

int k, l; 
for(k=1; k<=5; k++) // outer loop 
{ 
    for(l=0; l<k; l++) // inner loop 
     printf("*"); 
    printf("\n"); 

} 

的想法是在内环简单守印星只要l小于k。所以随着行数的增加(由k跟踪),恒星的数量也是如此。您的固定代码:

for(k=1; k<=5; k++) 
    { 
     for(l=0; l<=k-1; l++) printf("*"); 
     printf("\n"); 
    } 
+0

你可以抽象出内部循环:void printn(int n,char * s){while(0

+1

+1解释代码...我会删除单词simple,因为这是一个主观的,如果这些问题对每个人都很简单,那么他们会不要问 –

0

只需删除循环打印空间。其余的代码似乎很好