如何使该函数返回int array[4]
或指向*array[4]
?该数组由4个整数组成,在此函数的作用域内,通过指针和冒泡排序按升序计算,然后返回main进行打印。
我可以在此功能的范围内打印此数组,但是我想知道是否可以将其传递回main(调用函数)吗?
void sort4(int *n1, int *n2, int *n3, int *n4)
如果我将其更改为int X[4] sort4(int *n1, int *n2, int *n3, int *n4)
不起作用。这也是
int *X[4] sort4(int *n1, int *n2, int *n3, int *n4)
如果要按升序对四个单个整数进行排序,并传递它们的地址,则需要确保交换pointes。这是使用正确的指针算法修改的代码:
#include <stdio.h>
void sort4(int *n1, int *n2, int *n3, int *n4)
{
int *Arr[] = { n1, n2, n3, n4 };
int **i = Arr, **j, temp;
int ** const arrayEnd = Arr + 4;
for (; i != arrayEnd - 1; i++)
for (j = i + 1; j != arrayEnd; j++)
if (**i > **j) {
temp = **i;
**i = **j;
**j = temp;
}
}
int main(void)
{
int i1 = 125;
int i2 = 100;
int i3 = 10;
int i4 = 50;
printf("i1 = %i, i2 = %i, i3 = %i, i4 = %i\n", i1, i2, i3, i4);
sort4(&i1, &i2, &i3, &i4);
printf("i1 = %i, i2 = %i, i3 = %i, i4 = %i\n", i1, i2, i3, i4);
return 0;
}
输出:
i1 = 125,i2 = 100,i3 = 10,i4 = 50
i1 = 10,i2 = 50,i3 = 100,i4 = 125
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句