四年级学案:
1.作业点评:
1. 打印回形阵。
输入:
5
输出:
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
参考程序1:
#include<iostream>
using namespace std;
int main(){
int i,j,t,p,k,n;
int a[100][100]={0};
cin>>n;
k=n/2+n%2;//求出环形阵的最大数字。
for(t=1;t<=k;t++){//循环每一层环形的行或列出现的数字
for(i=t;i<=n+1-t;i++){//循环每一层环形的各行或列的数字的出现个数
a[t][i]=t;//上行
a[n+1-t][i]=t;//下行
a[i][t]=t;//左列
a[i][n+1-t]=t;//右列
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
参考程序2:
#include<iostream>
using namespace std;
int main(){
int i,j,t,k,n;
int a[100][100]={0};
cin>>n;
k=( n+1)/2;
for(t=1;t<=k;t++)
for(i=t;i<=n+1-t ;i++)
for(j=t;j<=n-t+1;j++)a[i][j]=t;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
( ) |