题目描述:
将一个数组中的值按逆序重新存放。例如,原来顺序为8,5,4,6,1,要求改为1,6,4,5,8。 提示:要将一个数组中的所有元素按逆序存放,只需将数组的第1个元素与最后一个元素交换,第二个元素与倒数第二个元素交换, 以此类推,直到数组最中间的元素为止。 要求实现函数ReverseArray 函数声明如下: int ReverseArray(int array[], int size); 其中array表示一个int的数组,size表示数组的长度,数组中第一个元素的下标为0 要求将array中数组的值按逆序存放,成功之后返回1 遇到异常情况(size <= 0等),返回0; 请不要在函数中输出数据。 例如: array ={1,2,3,4,5} size = 5} 调用函数ReverseArray(array, 5);之后 array={5,4,3,2,1}, ReverseArray返回值等于1 调用函数ReverseArray(array, -1);之后 array={1,2,3,4,5},ReverseArray返回值等于0
参考代码:
#include<stdio.h>
int ReverseArray(int array[],int size)
{
int tmp,i;
if(array==0||size<=0) return 0;
for(i=0;i<size/2;i++)
{
tmp=array[i];
array[i]=array[size-1-i];
array[size-i-1]=tmp;
}
return 1;
}
int main(){
int a[100],n,i;
scanf("%d",&n);
for(i=0;i<n;scanf("%d",&a[i++]));
ReverseArray(a,n);
for(i=0;i<n;printf("%d ",a[i++]));
return 0;
}
讲解:
这道题目呢就是我们遇到的第一个
teacher_main
题目,在此类题目中,系统只会截取你的
目标函数
(本题中目标函数为int ReverseArray(int array[],int size))进行测评,其余的部分忽略。所以除了目标函数要严格按照题目要求外,其他的部分可随心所欲,最后提交时只提交目标函数那部分即可。当然,整个代码提交也没问题,系统会忽略多余部分。
这道题,就是码图折磨人的开始。注意ReverseArray函数里判断return 0的条件,size<=0还好说,array==0是轻易想不到,好好的一道题,为什么要传入空数组呢excuse me?
求实求真,大气大为。
版权声明:本文为qq_35835847原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。