将数组int A[6]={-4,-8,-3,10,-6,20,-7}中的所有负数移到所有正数之前的程序算法或思路
答案:2 悬赏:40 手机版
解决时间 2021-03-26 04:48
- 提问者网友:杀手的诗
- 2021-03-25 22:08
将数组int A[6]={-4,-8,-3,10,-6,20,-7}中的所有负数移到所有正数之前的程序算法或思路
最佳答案
- 五星知识达人网友:独钓一江月
- 2021-03-25 22:37
以标准C的写法:int move_array_buff(int *p, int len){
int * tmp0 = (int *)malloc(len);
if(tmp0 == NULL) return -1;
int * tmp1 = (int *)malloc(len);
if(tmp1 == NULL) return -1;
int m = 0;
int n = 0;
for(int i = 0; i if(p[i] < 0) {
tmp0[m++] = p[i];
}else{
tmp1[n++] = p[i];
}
memcpy((void *)p, (void *)tmp0, m * sizeof(int));
memcpy((void *)(p+(m * sizeof(int))),(void *) tmp1, n * sizeof(int));
}
return 0;
}
int main(void){
int A[6]={-4,-8,-3,10,-6,20,-7};
move_array_buff(A, 6);
for(int i=0; i<6; i++){
printf("%d ", A[i]);
}
}
int * tmp0 = (int *)malloc(len);
if(tmp0 == NULL) return -1;
int * tmp1 = (int *)malloc(len);
if(tmp1 == NULL) return -1;
int m = 0;
int n = 0;
for(int i = 0; i
tmp0[m++] = p[i];
}else{
tmp1[n++] = p[i];
}
memcpy((void *)p, (void *)tmp0, m * sizeof(int));
memcpy((void *)(p+(m * sizeof(int))),(void *) tmp1, n * sizeof(int));
}
return 0;
}
int main(void){
int A[6]={-4,-8,-3,10,-6,20,-7};
move_array_buff(A, 6);
for(int i=0; i<6; i++){
printf("%d ", A[i]);
}
}
全部回答
- 1楼网友:山河有幸埋战骨
- 2021-03-25 23:35
Arrays.sort 一下,排个序不就好了。所有的负数都在正数之前,而且还从小到大。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯