我在这里就如何继续我的计划获得一些建议。这是一项家庭作业,其目的是让另一种方法称为int is_sorted(int array[], int length);
有了这些前后条件。
到目前为止,我已经能够将用户输入数组和它应该存在多长时间。
#include <stdio.h>
#include <math.h>
int is_sorted(int array[], int lenght);
int is_sorted(int array[], int lenght)
{
int swap;
int smallest;
int index = 0;
scanf("%d", &lenght);
int list[lenght];
int i;
for (i = 0; i < lenght; i++)
{
scanf("%d", &list[i]);
}
return 0;
}
int main()
{
}
我如何要求用户输入在给定数组中一次交换两个元素?
最终产品应该与此类似:
示例运行:用户输入以粗体显示
4 &lt; - 数组的长度。
1 1 1 2 &lt; - 用户输入这4个数字。
什么是下一次交换? 2 3
EVAN已经排除了阵营。
什么是下一次交换? 2 0
什么是下一次交换? 0 3
EVAN已经排列了阵列。
什么是下一次交换? -1 -1
史蒂夫是对的!
-1 -1结束交换过程并检查数组是否已排序。
答案 0 :(得分:2)
while(i != -1 && j != -1){
scanf("%d %d", &i, &j);
swap(&array[i], &array[j]);
}
和swap()
看起来像这样:
void swap(int* a, int* b){
int c = *a;
*a = *b;
*b = c;
}
对于交换两个变量做一些我不记得的按位xoring,可能有一个很好的技巧。