C 操纵数组
我是C语言编程新手,我有一个任务,我甚至不知道从哪里开始。 这就是我要做的:取一个整数列表,将它们排序为赔率和偶数,将偶数整数按发生的顺序放在列表的后面。我们必须返回C 操纵数组,c,arrays,sorting,C,Arrays,Sorting,我是C语言编程新手,我有一个任务,我甚至不知道从哪里开始。 这就是我要做的:取一个整数列表,将它们排序为赔率和偶数,将偶数整数按发生的顺序放在列表的后面。我们必须返回列表[] 例如: 假设数组列表已初始化,大小设置为10: int List[Size] = {13, 31, 24, 16, 3, 48, 21, 11, 39, 6}; 然后调用evensToBack()将导致 索引:0123456789 价值:13 31 3 21 11 39 24 16 48 6 以及返回的值4 所有这些,我
列表[]
例如:
假设数组列表已初始化,大小设置为10:
int List[Size] = {13, 31, 24, 16, 3, 48, 21, 11, 39, 6};
然后调用evensToBack()
将导致
索引:0123456789
价值:13 31 3 21 11 39 24 16 48 6
以及返回的值4
所有这些,我得到的只是这段开始代码:
`int evensToBack(int* const List, const int Size){
//body
}`
请帮我解释一下如何从这里开始。我非常感谢。在我看来,你想要的是方向而不是答案。考虑到这一点,以下是我看待这些问题的思考过程:
- 这意味着某种循环(请参阅)
- 您可能需要执行某种数学运算(请参阅)
- 你打算把结果放到新的列表中吗
- 是否要修改当前列表
- 其他可能性
跟踪顶部和底部两个指数 因此,在开始时,top=0,bottom=Size-1 循环遍历列表以设置底部索引(只是为了确保底部索引指向最底部的奇数) 使用top=0再次循环浏览列表
if List[top]%2 != 0 // if its an odd number
swap it with List[bottom]
decrement bottom by 1
increment top by 1
直到尺寸>顶部或顶部==底部
注意:您需要创建自己的列表,因为参数都是常量,所以您不能修改传递给函数的列表。您只需在数组中进行循环,并将偶数放在最后一个位置 比如:
for(i=0;i<length(List);i++)
if isEven(List[i]){
tempvar=List[i];
for(j=i;j<length(List)-1;j++) List[j]=List[j+1];
List[j+1]=tempvar;
}
for(i=0;i)实现简单的排序算法,但只需将“小于”的含义更改为“奇数”。