题目描述
给你 nn 个整数,将其逆序输出。
输入
第一行一个整数 nn (3 \le n \le 1003≤n≤100)代表数的个数。
第二行 nn 个整数(空格隔开)(这些数在 0 \sim 10^60∼106 之间)。
输出
nn 个整数(空格隔开)。
样例
输入
复制
3 1 7 5
输出
复制
5 7 1
思路一:
#include<bits/stdc++.h>
using namespace std;
int main(){//解法一:不真正逆序,而是直接倒序输出
int a[100],i,n;
cin>>n;//数组实际个数
for(i=1;i<=n;i++){//循环输入数组元素
cin>>a[i];
}
// 逆序输出
for(i=n;i>=1;i--) {
cout<<a[i]<<" ";
}
return 0;
}
思路二:
#include<bits/stdc++.h>
using namespace std;
int main(){//解法一:不真正逆序,而是直接倒序输出
int a[100],i,n,t;
cin>>n;//数组实际个数
for(i=0;i<n;i++){//循环输入数组元素
cin>>a[i];
}
//逆序:循环数组长度一半,对称位置交换数值
for(i=0;i<n/2;i++) {//i<n/2和 i<=n/2是不一样的循环次数
//交换下标元素(魔法变变变)
t=a[i]; //用一个t变量作为转存,将第一个数组值赋值t
a[i]=a[n-i-1];//逐个将最后一个数组赋值给第一个
a[n-i-1]=t;//将t的值赋值给倒数第一的数组
//以此类推,将第二个赋值倒数第二.......
}
for(i=0;i<n;i++){//循环输出逆序后的数组数值
cout<<a[i]<<" ";
}
return 0;
}