C++題目要輸入一個N值 使程式列出的答案如下:
假設N=5的話 列出矩陣N*N 假設N=7的話
1 1 1 1 1 1 1 1 1 1 1 1
1 2 2 2 1 1 2 2 2 2 2 1
1 2 3 2 1 1 2 3 3 3 2 1
1 2 2 2 1 1 2 3 4 3 2 1
1 1 1 1 1 1 2 3 3 3 2 1
1 2 2 2 2 2 1
1 1 1 1 1 1 1
這樣的話程式該如何寫呢???
接下來的部份不知道該怎麼用文字說明
直接給你我剛剛寫的程式碼,如果看不懂的話再問我
因為奇摩系統會自己把半形空白吃掉,所以我把它改成全形的方便閱讀,要run的話請自己改回來
int main()
{
int N,i,j,print; //print負責儲存接下來要輸出的值
cin>>N;
int *array=new int[N];
for(i=0;i<N/2;i++) //第一個大迴圈負責讓每一列的最大值遞增
{
print=1;
for(j=0; print<i+1 ;j++)//遞增輸出
{
cout<<print<<" ";
print++;
}
for(;j<N-i;j++)//固定輸出
{
cout<<print<<" ";
}
for(j=i+1;j>0;j--)//遞減輸出
{
cout<<print<<" ";
print--;
}
cout<<endl;
}
for(;i>=0;i--) //第二個大迴圈負責讓每一列的最大值遞減
{
print=1;
for(j=0; print<i+1 ;j++)//遞增輸出
{
cout<<print<<" ";
print++;
}
for(;j<N-i;j++)//固定輸出
{
cout<<print<<" ";
}
for(j=i+1;j>0;j--)//遞減輸出
{
cout<<print<<" ";
print--;
}
cout<<endl;
}
}