Problem B: C语言习题 矩阵元素变换
Problem B: C語言習題 矩陣元素變換
Time Limit: 1 Sec??Memory Limit: 128 MBSubmit: 942??Solved: 558
[Submit][Status][Web Board]
Description
將一個n×n(2<n<10,n為奇數)的矩陣中最大的元素放在中心,4個角分別放4個最小的元素(按從左到右、從上到下順序依次從小到大存放),寫一函數實現。用main函數調用。
Input
輸入n和矩陣中的每個元素
Output
變換后的矩陣
Sample Input
5 25 13 9 5 1 16 17 18 19 6 15 24 4 20 7 14 23 22 21 8 2 12 11 10 3Sample Output
1 13 9 5 2 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 3 12 11 10 4HINT
主函數已給定如下,提交時不需要包含下述主函數
/* C代碼 */
int main()
{
??? void change(int *,int );
??? int **a,*p,i,j;
??? int n;
??? scanf("%d",&n);
??? p=(int*)malloc(n*n*sizeof(int));
??? a=(int**)malloc(n*sizeof(int *));
??? for(i=0; i<n; i++)
??????? a[i]=p+n*i;
??? for (i=0; i<n; i++)???????????????????? //輸入矩陣
??????? for (j=0; j<n; j++)
??????????? scanf("%d",&a[i][j]);
??? change(p,n);????????????????????????????? //調用函數,實現交換
??? for (i=0; i<n; i++)??????????????????? //輸出已交換的矩陣
??? {
??????? for (j=0; j<n; j++)
??????????? printf("%d ",a[i][j]);
??????? printf("\n");
??? }
??? free(p);
??? free(a);
??? return 0;
}
/* C++代碼 */
int main()
{
??? void change(int *,int );
??? int **a,*p,i,j;
??? int n;
??? cin>>n;
??? p=new int[n*n];
??? a=new int*[n];
??? for(i=0; i<n; i++)
??????? a[i]=p+n*i;
??? for (i=0; i<n; i++)???????????????????? //輸入矩陣
??????? for (j=0; j<n; j++)
??????????? cin>>a[i][j];
??? change(p,n);?????????????????????????? //調用函數,實現交換
??? for (i=0; i<n; i++)??????????????????? //輸出已交換的矩陣
??? {
??????? for (j=0; j<n; j++)
??????????? cout<<a[i][j]<<" ";
??????? cout<<endl;
??? }
??? delete []p;
??? delete []a;
??? return 0;
}
總結
以上是生活随笔為你收集整理的Problem B: C语言习题 矩阵元素变换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高级精致智能快捷的Web设计原则案例
- 下一篇: 棋盘问题【深搜】