参考方法:
#include
#include
#include
void reverse(int *numArray, int k);
int main()
{
srand((int)time(0));
int *numArray = NULL, m, n;
printf("产生多少个1-100的随机数组元素?\n");
scanf("%d", &n);
numArray = (int*)calloc(n, sizeof(int));
for (m = 0; m < n; ++m)
numArray[m] = rand() % 101;//1-100之间随机数
printf("逆序前:\n");
for (m = 0; m < n; ++m)
printf("%-4d", numArray[m]);
reverse(numArray, n);
printf("\n逆序后:\n");
for (m = 0; m < n; ++m)
printf("%-4d", numArray[m]);
printf("\n");
return 0;
}
void reverse(int *numArray, int k)
{
int i, j;
if (k % 2)//元素个数为奇数个时
{
for (i = 0, j = k - 1; i < k / 2 && j > k / 2; ++i, --j)
{
numArray[i] += numArray[j];
numArray[j] = numArray[i] - numArray[j];
numArray[i] -= numArray[j];
}
}
else
{
for (i = 0, j = k - 1; i < k / 2 && j >= k / 2; ++i, --j)
{
numArray[i] += numArray[j];
numArray[j] = numArray[i] - numArray[j];
numArray[i] -= numArray[j];
}
}
}
kisushotto
kisushotto
kis***otto@163.com2年前 (2019-04-28)