/*程序一:#include<stdio.h>
int main()
{
int a[7][7],b[4]={1,9,5,6};
for(int i=0;i<4;i++)
{
for(int j=i;j<7-i;j++)
{
a[i][j]=b[i];
a[6-i][j]=b[i];
}
for(int j=i+1;j<6-i;j++)
{
a[j][i]=b[i];
a[j][6-i]=b[i];
}/*从外而内一圈一圈赋值,变换的值取j,行不变列变时,j放在第二位,列不变行变时,j放在第一位
}
for(int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
printf("%2d",a[i][j]);
printf("\n");
}
return 0;
}*/
/*程序二#include<stdio.h>
int main()
{
int a[7][7],b[4]={1,9,5,6};
for(int i=0;i<4;i++)
{
for(int j=i;j<7-i;j++)
{
a[i][j]=b[i];
a[6-i][j]=b[i];
a[j][i]=b[i];
a[j][6-i]=b[i];
}
}
for(int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
printf("%2d",a[i][j]);
printf("\n");
}
return 0;
} */
/*以上两个程序都是先用二维数组来保存输出图形的数据,然后再进行输出。
int main()
{
int b[4]={1,9,5,6};
for(int i=0;i<7;i++)
{
for(int j=0;j<7-i;j++)
if(j<i)
printf("%2d",b[j]);/*/输出1区的数据*/
else
printf("%2d",b[i]);//输出2区的数据
for(int j=7-i;j<7;j++)
if(j>i)
printf("%2d",b[6-j]);//输出3区的数据
else
printf("%2d",b[6-i]); //输出4区的数据
printf("\n");
}
return 0;
}
int main()
{
int a[7][7],b[4]={1,9,5,6};
for(int i=0;i<4;i++)
{
for(int j=i;j<7-i;j++)
{
a[i][j]=b[i];
a[6-i][j]=b[i];
}
for(int j=i+1;j<6-i;j++)
{
a[j][i]=b[i];
a[j][6-i]=b[i];
}/*从外而内一圈一圈赋值,变换的值取j,行不变列变时,j放在第二位,列不变行变时,j放在第一位
}
for(int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
printf("%2d",a[i][j]);
printf("\n");
}
return 0;
}*/
/*程序二#include<stdio.h>
int main()
{
int a[7][7],b[4]={1,9,5,6};
for(int i=0;i<4;i++)
{
for(int j=i;j<7-i;j++)
{
a[i][j]=b[i];
a[6-i][j]=b[i];
a[j][i]=b[i];
a[j][6-i]=b[i];
}
}
for(int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
printf("%2d",a[i][j]);
printf("\n");
}
return 0;
} */
/*以上两个程序都是先用二维数组来保存输出图形的数据,然后再进行输出。
程序三仅用一维数组保存输出图形中的 不同数据,然后用两重循环来直接控制输出四个区域的图形数据,
仅对角线上数据元素被重复放置一次,一次循环控制输出上下左右三角图形的数据存放*/
#include<stdio.h>int main()
{
int b[4]={1,9,5,6};
for(int i=0;i<7;i++)
{
for(int j=0;j<7-i;j++)
if(j<i)
printf("%2d",b[j]);/*/输出1区的数据*/
else
printf("%2d",b[i]);//输出2区的数据
for(int j=7-i;j<7;j++)
if(j>i)
printf("%2d",b[6-j]);//输出3区的数据
else
printf("%2d",b[6-i]); //输出4区的数据
printf("\n");
}
return 0;
}