当前位置: 代码迷 >> C语言 >> ●●★求助★●●
  详细解决方案

●●★求助★●●

热度:79   发布时间:2008-04-12 15:23:49.0
●●★求助★●●
用for写程序,输出以下图形:[/color]

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



[color=Red]我写的只能输出一半:
[color=Black]#include<stdio.h>
main()
{
    int i,j,k,n,m;
    scanf("%d",&n);
    m=n;
    for(i=1;i<=n;i++)
    {
        for(k=n;k>=1;k--)
                printf(" ");
        for(j=1;j<=2*i-1;j++)
            
            printf("*");
        printf("\n");
        n--;
    }

}
运行结果:

望高人指点

[[it] 本帖最后由 bianchengfeng 于 2008-4-12 15:43 编辑 [/it]]
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<conio.h>
int main()
{
    int i, j, k, n=11;
    for(i=0; i<(n-1)/2; i++)
    {
             for(j=(n+1)/2; j>i+1; j--)
             printf(" ");
             for(k=0; k<2*i+1; k++)
             printf("*");
             printf("\n");
     }
     for(i=0; i<(n+1)/2; i++)
    {
             for(j=0; j<i; j++)
             printf(" ");
             for(k=n; k>2*i; k--)
             printf("*");
             printf("\n");
     }
     getch();
     return 0;
}
----------------解决方案--------------------------------------------------------
回复 2# 的帖子
太感谢了!
----------------解决方案--------------------------------------------------------
恩 你可以试着把他当作 倒三角去打 然后拼在一起 虽然不是好的法子但是 思路很清晰 对初学者很好
----------------解决方案--------------------------------------------------------
回复 4# 的帖子
不懂啊
----------------解决方案--------------------------------------------------------
打一个你就知道了 等下
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
  int i,j,n,k;                 //i控制行j空格 k 控制*
  printf("请输入要打印的行数");
   scanf("%d",&n);    //当做正3角来打
   for(i=1;i<=n;i++)
      {
       for(j=i;j<=n;j++)
           printf(" ");
       for(k=1;k<=2*i-1;k++)
           printf("*");
       printf("\n");
     }
                          
     for(i=1;i<n;i++)             //当做倒3角来打
      {
       for(j=0;j<=i;j++)
           printf(" ");
       for(k=1;k<=2*(n-i)-1;k++)
           printf("*");
       printf("\n");
     }
}                     // 说下小总结 也就是上面是个梯形 下面也是个 梯行  不要被表面迷惑 我其实打的是2梯形拼凑在一起
                      //只不过视觉上看不清楚是了
----------------解决方案--------------------------------------------------------
论坛中有很多相应的贴子~
----------------解决方案--------------------------------------------------------
  相关解决方案