请编写函数,颠倒数组元素的排列顺序。
函数原型
void ArrayReverse(double *array, int size);
说明:array 为数组的起始地址,size 为数组尺寸。函数将数组元素的排列顺序颠倒过来。
裁判程序
#include <stdio.h>
#define arraySize 1024
void RealSwap(double *x, double *y);
void ArrayInput(double *array, int size);
void ArrayOutput(const double *array, int size);
void ArrayReverse(double *array, int size);
int main()
{
double a[arraySize];
int n;
scanf("%d", &n);
if (n < 1 || n > arraySize)
{
puts("Error!");
exit(1);
}
ArrayInput(a, n);
ArrayReverse(a, n);
ArrayOutput(a, n);
putchar('\n');
return 0;
}
......
/* 你提交的代码将被嵌在这里 */
说明:RealSwap 函数交换两个实数的值;ArrayInput 函数输入数组,ArrayOutput 函数输出数组。
输入样例
10
3.6, 0.8, 1.7, 8.2, 7.5, 2.3, 5.4, 4.7, 6.2, 9.8
输出样例
9.8, 6.2, 4.7, 5.4, 2.3, 7.5, 8.2, 1.7, 0.8, 3.6
代码如下:
void ArrayReverse(double *array, int size)
{
for (int i = 0; i < size / 2; i++)
{
RealSwap(array + i, array + size - i - 1);
}
}
这边把RealSwap 函数;ArrayInput 函数;ArrayOutput 函数的也列出来:
void RealSwap(double *x, double *y)
{
double n;
n = *x; *x = *y; *y = n;
}
void ArrayInput(double *array, int size)
{
for (int i = 0; i < size; i++)
scanf("%lf", array + i);
}
void ArrayOutput(const double *array, int size)
{
for (int i = 0; i < size; i++)
{
printf("%.1lf", *(array + i));
if (i != size - 1)
printf(", ");
}
}