**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
21小时前关门了。
Improve this question
因此,我试图使一个算法,移动数组中的元素时,以往任何时候都2是在数组中找到
输入3 4 2 9
,输出4 2 9 0
这个输出是必需的,我已经尝试了某种代码,但很困惑,因为它要么复制或删除元素,输出是3 4 0 9
或类似的东西
int main() {
int a[4], i, j;
for (i = 0; i < 4; i++) {
printf("Enter element: ");
scanf("%d", &a[i]);
}
void dele() {
for (i = 0; i < 4; i++) {
printf("%d",i);
if (a[i] == 2) {
printf("Ds");
for (j = i; j > 0; j--) {
printf("DSasdw");
a[j+1] = a[j-1];
printf("%dww",a[j-1]);
}
a[3] = NULL;
break;
}
}
}
dele();
for (i = 0; i < 4; i++) {
printf("%d ", a[i]);
}
return 0;
}
1条答案
按热度按时间polhcujo1#
我认为这段代码将做你想要的,从我的理解:
这个函数循环遍历数组,直到它找到一个2,然后内部循环将它向左移动1位,并使最后一个元素= 0,然后我们减少计数器和大小,以检查新移动的元素,直到我们完成整个数组。