【发布时间】:2019-03-01 05:48:48
【问题描述】:
关于 StackOverflow 的第一篇文章。我应该创建一个函数:
int sumsort(int *a, int *b, int *c)
此函数应将 3 个值排列在指向的内存位置 a, b, c 以升序排列,并返回内容的总和 内存位置 a、b 和 c。
这是我的功能:
int sumsort(int *a, int *b, int *c) {
int sum = *a + *b + *c;
int sorted[] = {*a, *b, *c};
for (int i = 0; i <= 2; i++) {
if (sorted[0] > sorted[1])
{
int temp = sorted[1];
sorted[1] = sorted[0];
sorted[0] = temp;
} // end if
if (sorted[1] > sorted[2])
{
int temp2 = sorted[2];
sorted[2] = sorted[1];
sorted[1] = temp2;
} // end if
} // end for
return sum;
} // end sumsort function
如何访问 main 中的 sorted[] 数组?我需要按升序打印 3 个变量,但我真的不知道该怎么做,因为 sumsort 函数必须返回总和,而实际排序也必须在 sumsort 函数中进行。
在调用sumsort 函数后,我尝试在main 中创建一个新的数组变量并为其分配sorted[],但这不起作用,因为它超出了范围?
【问题讨论】:
-
你不能更改
sumsort的签名吗?你不能给它第四个参数吗? -
没错
-
创建一个指针数组并根据间接值对该数组进行排序
-
你的任务是交换
*a、*b和*c的内容。不要像你那样创建一个按顺序引用它们的新结构,而是简单地交换它们。