注册 登录
编程论坛 C++教室

数组交换

xxp27 发布于 2008-07-18 10:05, 1671 次点击
这是我写的关于交换两个数组内容的程序,贴上来大家帮我看看算法上有什么可以改进的,谢谢啦(不要将两个数组元素分别交换,因为当数组元素非常多时,效率就会很低)

// 数组交换.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<conio.h>
#include<iomanip>
using namespace std;

int main()
{
    const int N=5;
    const int M=4;
    int *a=new int[N];
    int *b=new int[M];
    int *temp;


    for(int i=0;i<N;i++)  a[i]=i;

    for(int i=0;i<M;i++)  b[i]=i*2;

    cout<<"原来的A为:"<<endl;
    for(int i=0;i<N;i++)
            cout<<setw(5)<<a[i]<<" ";
   
    cout<<endl;
    cout<<"原来的B为:"<<endl;
    for(int i=0;i<M;i++)
           cout<<setw(5)<<b[i]<<" ";
  
    cout<<endl;

    temp=a;
    a=b;
    b=temp;

    cout<<"现在的A为:"<<endl;
    for(int i=0;i<M;i++)
    {
            cout<<setw(5)<<a[i]<<" ";
    }
    cout<<endl;

    cout<<"现在的B为:"<<endl;
    for(int i=0;i<N;i++)
    {
           cout<<setw(5)<<b[i]<<" ";
    }
    getch();
    return 0;
}
3 回复
#2
zjl1382008-07-18 12:35
数组名是个常量地址,通常不能用来赋值参与运算,虽然在这里是正确的。
我觉得你这个称为交换两个指针更恰当.
#3
aipb20072008-07-18 23:13
恩,就是这样,很好。
#4
晨曦的朝阳2008-07-18 23:37
UP!
1