任务和代码
第一种解法:
#include <stdio.h>
#define N 7int main()
{
char str[N][N];
int i = 0;
int j = 0;
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 - 2;
while(i<m)
{
str[i++][j--] = '*';
}
i = i - 2;
while(j >= n)
{
str[i--][j--] = '*';
}
j = j + 2;
while (i > n)
{
str[i--][j++] = '*';
}
//str[(m+1)/2][(m+1)/2] = '*';
str[(m-1)/2][(m-1)/2] = '*';
m--;
n++;
i++;
}
for(i = 0; i < N; i++)
{
for(j = 0; j < N; j++)
{
printf("%c", str[i][j]);
}
printf("\n");
}
return 0;
}
第二种解法:
#include <stdio.h>
int main()
{
int i;
int j;
for (i=0; i<7; i++)
{
for (j=0; j<7; j++)
{
if ( i+j>=3 && i+j<=9 && j-i<=3 && i-j<=3 )
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
return 0;
}
运行结果:
心得体会:
做这种题目要有思维逻辑性,找可循规律。