//通过键盘给一个数组赋值,然后反序输出
//通过键盘给一个数组赋值,然后反序输出的程序,除了我这种原数组不变,将值反序赋给另一个数组,即a[5]={1 1 3 4 5} 程序执行后 b[5]={5 4 3 1 1}
#include <iostream>
#include <stdlib.h>
using namespace std;
void main()
{
//通过键盘给数组num赋值
const int size=5;
int i;
int nums[size];
int sum=0;
cout << "Please enter " << size << " nums" <<endl;
for(i=0; i<size; i++)
{
cin >> nums[i];
}
int o;
int fan_nums[size];
for(i=size-1,o=0; i>=0,o<size; i--,o++)
{fan_nums[o]=nums[i];
cout << "fan_nums" << "[" << o << "]" << " is " << fan_nums[o] << endl;
}
}
有没有那种改完后原数组的值也改变的程序,即a[5]={1 1 3 4 5} 程序执行后 a[5]={5 4 3 1 1}
[解决办法]
抽了个空帮你写了一个!
- C/C++ code
#include <iostream>using namespace std;//置换void exchange(int &a,int &b){ if(a!=b) { a = a + b; b = a - b; a = a - b; }}// 逆序// a-逆序数组 begin开始序号 end结束序号void reserve(int a[],int begin,int end){ while(begin<=end){ exchange(a[begin],a[end]); begin++; end--; }}// 打印数组void print(int a[],int n){ int i=0; for(;i<n;i++){ cout<<a[i]<<" "; } cout<<endl;}int main(){ int a[]={1,2,3,4}; cout<<"输入前"<<endl; print(a,sizeof(a)/sizeof(a[1])); reserve(a,0,sizeof(a)/sizeof(a[1])-1); cout<<"逆转后"<<endl; print(a,sizeof(a)/sizeof(a[1])); return 0;}