c - 使用C中的指针按升序对数组进行排序
问题描述
我正在编写一个程序,它创建一个从 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++;
}
}
输出应如下所示:
解决方案
您需要修复函数调用以使参数带有指针。
void swap(int *increment2, int* increment)
然后在你需要的交换功能中
您将需要尊重整数*。
Example
int n1;
int* x = 100
n1 = *x;
在未来的例子中你可能需要尊重
您的函数接受指针
void swap(int *increment2, int* increment)
如果您有整数或其他数据类型来引用它们,请参考它们的地址,您可以执行 & 进行引用。
int i = 5;
int* x;
x = &i;
x 现在是指向 i 地址的整数指针。
推荐阅读
- android - 从不同的堆栈中清除任务
- angularjs - 如何实现 AngularJS MVC
- javascript - 检测 webextension 中的页面变化
- java - 尝试在 recyclerview 中的空对象引用上调用接口方法“int java.util.List.size()”
- javascript - 如何将字符串拆分为键/值输出数组,以便在以后的 Zapier 步骤中使用
- sql - 如何计算Sql server中表的行大小?
- spring-data - JPA Query方法不返回任何内容
- oracle - 尝试测试 HTTP 连接时收到“ORA-53203:安全违规”
- python - 根据其他列的唯一值从数据框中选择行?
- java - 在 Payara 5 中使用 Web 应用程序发送电子邮件