问题 3997 --迷惑操作(完善程序)

3997: 迷惑操作(完善程序)★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 254  解决: 210
[提交][状态][命题人:]

题目描述

fgh最近学了指针,搞懂了一点指针的知识,想写一个将2*2矩阵两组对角数交换的程序。但他不满足于此,他不仅要用指针,还要用得花里胡哨,将尽可能多的知识放进去。请完善下面fgh写的代码

#include<iostream>
using namespace std;
int fun1(int a[],int *b[])//b是int **
{
    int *t=a;
    a=_____(1)______ 
    int tmp=*(a+1); 
    *(a+1)=*t;
    *t=tmp;
}
int fun2(int &a,int *n)
{
    int *t=n;
    a=*n;
    *n=*t;
    *t=a;
    return *n;
}
int main()
{
    ______(2)_____//要开辟一个二维数组的空间,先开辟一个一维指针型数组,用于存放二维数组各行首元素的地址 
    for (int i=0;i<2;i++)
    {
        _____(3)_____//每个单元的存放新开辟的一维int型数组的首地址 
    }
    for (int j=0;j<=1;j++)
        _____(4)_______
    for (int j=0;j<=1;j++)
        cin>>*(*(arr+1)+j);
    //对主对角线上的数操作 
    fun1(arr[0],arr);//*(arr+0)
    //对另外一组对角线上的数操作
    int a=arr[0][1];
    int b=arr[1][0];
    int c=fun2(a,&b);
    arr[1][0]=_____(5)_____//想想a,b,c的值是什么。
    arr[0][1]=a;
    for (int i=0;i<=1;i++)
    {
        for (int j=0;j<=1;j++)
        {
            _____(6)________
        }
        cout<<endl;
    }
    for(int i=0;i<2;i++)
    {
        delete [] arr[i];
    }
    delete arr;
}


输入

输出

样例输入
Copy
1 2
3 4
样例输出
Copy
4 3
2 1

提示

来源

[提交][状态]