本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。
输入格式:
输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。
输出格式:
在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。
输入样例:
4
10 8 1 2
输出样例:
2 1 8 10
唯一需要关注的是,如果数组角标是正序输入,逆序输出的,没有输出值是说明数组越界了,这问题还挺难发现的,计算机编程程序识别不出来。
下面有两种方法可以解决,一种是数组角标正着输入,逆着输出;另一种是角标倒着输入,正着输出。
展示第一种:
#include<stdio.h>
int main() {
int a[11] ;
int n;
int i;
scanf("%d", &n);
for (i = n-1; i >= 0; i--) {
scanf("%d", &a[i]);
}
for (i = 0; i <= n-2; i++) {
printf("%d ", a[i]);
}
for (i = n - 1; i < n; i++)
printf("%d", a[i]);
return 0;
}
以下是第二种
#include<stdio.h>
int main(){
int n,i;
scanf("%d",&n);
int a[n];
for(i=n-1;i>=0;i--) scanf("%d",&a[i]);
for(i=0;i<n;i++) {
printf("%d",a[i]);
if(i<n-1) printf(" ");
}
return 0;
}
还要注意的是,最后没有空格,这个需要处理一下,然后就没什么问题了。