今天写了一道关于二维数组的打印和判断碰壁条件的题目,感觉也是比较有意思,于是就把它记录了下来。
题目是: 打印菱形星号组合(不允许只用printf,要求采用循环的方式,找规律)
*
***
*****
*******
*****
***
*
/**********************************************************
File Name:
Author: xxx Date:2016-12-13
Description: 打印菱形星号组合(不允许只用printf,要求采用循环的方式,找规律)
*
***
*****
*******
*****
***
*
Fuction List:
************************************************************/
#include <stdio.h>
#define N 7
int main()
{
char str[N][N];
int i = 0;
int j;
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
str[i][j] = 32;
}
}
int m = N;
int n = 0;
i = 0;
j = (N-1)/2;
while(j != i)
{
while (j < m)
{
str[i++][j++] = '*';
}
j = j - 1;
while (i < m)
{
str[i++][--j] = '*';
}
i = i - 1;
while(j > n)
{
str[--i][--j] = '*';
}
while (i > n)
{
str[--i][++j] = '*';
}
str[(m+1)/2][(m+1)/2] = '*';
m--;
n++;
i++;
// printf("i = %d\nj = %d\n",i,j);
}
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
printf("%c", str[i][j]);
}
printf("\n");
}
return 0;
}