编写一个C程序,使用指针对数组进行排序。此示例将指针传递给 SortArray 函数,并在 for 循环中使用 temp 变量以升序对数组进行排序。
#include <stdio.h>
void SortArray(int Size, int* parr)
{
int i, j, temp;
for (i = 0; i < Size; i++)
{
for (j = i + 1; j < Size; j++)
{
if(*(parr + j) < *(parr + i))
{
temp = *(parr + i);
*(parr + i) = *(parr + j);
*(parr + j) = temp;
}
}
}
printf("\nSorted Array Elements using Pointer = ");
for(i = 0; i < Size; i++)
{
printf("%d ", *(parr + i));
}
}
int main()
{
int Size;
printf("\nEnter Array Size to Sort using Pointers = ");
scanf("%d", &Size);
int arr[Size];
printf("\nPlease Enter %d elements of an Array = ", Size);
for (int i = 0; i < Size; i++)
{
scanf("%d", &arr[i]);
}
SortArray(Size, arr);
printf("\n");
}

此C 程序将通过将数组指针传递给函数和使用 while 循环进行排序,以升序对给定数组进行排序。
#include <stdio.h>
void SortArray(int Size, int *parr)
{
int i, j, temp;
i = 0;
while (i < Size)
{
j = i + 1;
while (j < Size)
{
if (*(parr + j) < *(parr + i))
{
temp = *(parr + i);
*(parr + i) = *(parr + j);
*(parr + j) = temp;
}
j++;
}
i++;
}
printf("\nSorted Array Elements using Pointer = ");
i = 0;
while (i < Size)
{
printf("%d ", *(parr + i));
i++;
}
}
void acceptArrayItems(int Size, int *parr)
{
printf("\nPlease Enter %d elements of an Array = ", Size);
int i = 0;
while (i < Size)
{
scanf("%d", parr + i);
i++;
}
}
int main()
{
int Size;
printf("\nEnter Array Size to Sort using Pointers = ");
scanf("%d", &Size);
int arr[Size];
acceptArrayItems(Size, arr);
SortArray(Size, arr);
printf("\n");
}
Enter Array Size to Sort using Pointers = 9
Please Enter 9 elements of an Array = 11 99 33 234 17 98 5 55 49
Sorted Array Elements using Pointer = 5 11 17 33 49 55 98 99 234