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

求助输出图案

热度:234   发布时间:2008-03-30 13:18:49.0
求助输出图案
输出这个图案的代码..谢谢了
     *
    * * *
  * * * * *
* * * * * * *
  * * * * *
    * * *
      *
搜索更多相关的解决方案: 图案  输出  

----------------解决方案--------------------------------------------------------
是一道作业吧。
/**************打印一菱形*****************/
/**分析:由于菱形上部和下部对称,故第一重循环的循变量取一对称范围(-3至+3);
第二,三重循环,循变量依融赖于第一重,并取绝对值可得到对称效果。***/

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main(void)
{
  int i,j,k;
  for(i=-3;i<=3;i++)             //打印行数;
  {
      for(j=abs(i);j>0;j--)       //打印每一行的空格数;
      {
            printf(" ");
      }
      for(k=abs(i);k<7-abs(i);k++)   //打印*号;
      {
            printf("*");
      }
      printf("\n");
  }
  system("PAUSE");
  return 0;
}
----------------解决方案--------------------------------------------------------
这也是我们的习题,我想了好久,想不通,现在才知道要用对称的,学习了
----------------解决方案--------------------------------------------------------
回复 2# 的帖子
system("PAUSE");这个语句是什么意思啊?
----------------解决方案--------------------------------------------------------
这是hoodlum1980大哥的代码 不好意思借了下!!!!
#include<stdio.h>
void  main()
{
    int i,j,n;
    printf("n=?\n");
    scanf("%d",&n);
    for(i=0; i<2*n+1; i++)
    {
        for(j=0; j<2*n+1; j++)
        {
            if( i+j>=n && i+j<=3*n && i-j>=-n && i-j<=n ) printf("*");
            else printf(" ");
        }
        printf("\n");
    }
}
----------------解决方案--------------------------------------------------------
顺便说一下它使用的是坐标法
顺便说一下它使用的是坐标法
----------------解决方案--------------------------------------------------------
可以使用这种方法 :
#include <stdio.h>
main()
{
    int i,j,k;
    for(i=1;i<=4;i++)
    {
      for(j=1;j<=4-1;j++)
         printf(" ");
      for(k=1;k<=2*i-1;k++)
         printf("*");
      printf("\n");
    }
    for(i=3;i>0;i--)
    {
       for(j=1;j<=4-i;j++)
           printf(" ");
       for(k=1;k<=2*i-1;k++)
           printf("*");
       printf("\n");
    }
getchar();
}


此题也可以通过声明字符型变量或者通过数组来解决。
----------------解决方案--------------------------------------------------------
system"pause";
这是为了解决DEV_C++无法显示结果设置的命令,就是让程序等待输入,
你试下就知道怎么回事了!
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<math.h>
#include<stdlib.h>

main()
{
      int i,j,k;
      char ar='D';
      for(i=-3;i<=3;i++)
      {
      for(j=abs(i);j>0;j--)
      {
      printf(" ");
      }
      for(k=abs(i);k<7-abs(i);k++)
      {
      printf("%c",ar-abs(i));
      }
    printf("\n");
      }  
      system("pause");
      }
----------------解决方案--------------------------------------------------------
#define N 7
#include"stdio.h"
void main(){
    int i,j,k;
    for(i=1;i<=N;i++){
       if(i<=(N+1)/2)k=i;
       else k=8-i;
       for(j=1;j<=4-k;j++)
        printf(" ");
       for(j=1;j<=2*k-1;j++)
        printf("*");
        printf("\n");
    }
    getch();
}
----------------解决方案--------------------------------------------------------
  相关解决方案