首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

看不太明白,哪位高手给小弟我解释一下啊

2012-02-12 
看不太明白,谁给我解释一下啊?/*输出以下图案:** * ** * * * ** * * * * * ** * * * ** * ***/#includest

看不太明白,谁给我解释一下啊?
/*
  输出以下图案:  
  * 
  * * * 
  * * * * *  
  * * * * * * *  
  * * * * * 
  * * *  
  *
   
*/
#include<stdio.h>
main()
{
  int i,j,k;
  int N=4;
  int M=7;
  for(i=1;i<=M/2+1;i++){
  for(k=0; k<=M/2-i;k++){
  for(j=0;j<N;j++){
  printf(" ");
  }
  }
  for(k=1;k<=2*i-1;k++){
  printf("*");
  for(j=1;j<N;j++){
  printf(" ");
  }
  }
  printf("\n");
  } 
  for(i=M/2;i>=1;i--){
  for(k=0;k<=M/2-i;k++){
  for(j=0;j<N;j++){
  printf(" ");
  }
  }
  for(k=1;k<=2*i-1;k++){
  printf("*");
  for(j=1;j<N;j++){
  printf(" ");
  }
  }
  printf("\n");
  }
  return 0;
}

[解决办法]
#include <stdio.h>
main()
{
int i,j,k;
int N=4;
int M=7;
//输出菱形的上半部分,共四行
for(i=1;i <=M/2+1;i++){
//输出前导空格,依次为3,2,1,0个
for(k=0; k <=M/2-i;k++){
for(j=0;j <N;j++){
printf( " ");
}
}
//输出*,依次为1,3,5,7个
for(k=1;k <=2*i-1;k++){
printf( "* ");
for(j=1;j <N;j++){
printf( " ");
}
}
//换行
printf( "\n ");
}
//输出菱形的下半部分
for(i=M/2;i> =1;i--){
for(k=0;k <=M/2-i;k++){
for(j=0;j <N;j++){
printf( " ");
}
}
for(k=1;k <=2*i-1;k++){
printf( "* ");
for(j=1;j <N;j++){
printf( " ");
}
}
printf( "\n ");
}
return 0;
}
[解决办法]

C/C++ code
 


#include <stdio.h>
int main()
{
int len,i,j,k;
//i控制行,j控制列,len用于接受用户输入的长度

printf("输入要打印菱形的边长\n:");
scanf("%d",&len);

for(i=1;i <=len;++i)
{
for(j=len-i;j>0;--j)
{
printf("  ");//2个空格
}//打印空格


for(j=1; j <=2*i-1;++j)
{
printf(" *");//空格,星号
}//打印星号

printf("\n");
}
/*以上打印上半部分及中间一行*/


/*以下打印下半部分*/
for(i=len-1;i>0;--i)
{
for(j=len-i;j>0;--j)
{
printf("  ");
}


for(j=1; j <=2*i-1;++j)
{
printf(" *");
}
printf("\n");
}



system("pause");
return 0;
}


热点排行