gpt4 book ai didi

c - C中使用指针对数组进行升序排序

转载 作者:行者123 更新时间:2023-11-30 16:25:36 25 4
gpt4 key购买 nike

我正在编写一个程序,该程序创建一个从 1 到 100 的随机数数组,并按升序对它们进行排序。下面是执行此操作的工作代码,但我需要对其进行修改,以便“交换”函数使用指针。对交换函数的调用应如下所示: swap(???,???) 其中两个输入是指针。实现这一目标的最佳方法是什么?

    #include<stdio.h>
#include<math.h>

int main()
{
void fillArray(int sizeArray, int array[sizeArray]);
void printArray(int sizeArray, int array[sizeArray]);
void sortArray(int sizeArray, int array[sizeArray]);

int sizeArray;

printf("\nSize of the array? ");
scanf("%d", &sizeArray);

int array[sizeArray];

fillArray(sizeArray,array);
sortArray(sizeArray, array);
printArray(sizeArray, array);
}

void fillArray(int sizeArray, int array[sizeArray])
{
int increment;

for(increment=0; increment<sizeArray; increment++)
{
array[increment]=rand()%101;
}
}

void sortArray(int sizeArray, int array[sizeArray])
{
void swap(int increment2, int increment, int array[]);
int increment, increment2, temp;

for (increment=0; increment < sizeArray ; increment++)
{
for (increment2=increment+1; increment2 < sizeArray; increment2++)
{
swap(increment2, increment, array);
}
}
}

void swap(int increment2, int increment, int array[])
{
int temp;
if (array[increment2] < array[increment])
{
temp=array[increment];
array[increment]=array[increment2];
array[increment2]=temp;
}
}

void printArray(int sizeArray, int array[sizeArray])
{
int increment=0;

printf("\nHere's the sorted array:\n");

while(increment<21)
{
printf("\n array[%d] is %d", increment, array[increment]);
increment++;
}
}

输出应如下所示: output

最佳答案

定义您的交换函数,如下所示:

void swap(int *increment2, int* increment)

修改调用交换函数的 for 循环:

for (increment=0; increment < sizeArray ; increment++)
{
for (increment2=increment+1; increment2 < sizeArray; increment2++)
{
swap(array[increment2], array[increment]);
}
}

然后,修改你的交换函数:

void swap(int *increment2, int* increment)
{
int temp;
if (increment2 < increment)
{
temp= *increment2;
*increment2=*increment;
*increment2=temp;
}

}

关于c - C中使用指针对数组进行升序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53343856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com