【发布时间】:2023-02-20 20:47:11
【问题描述】:
printf("Enter position : ");
scanf("%d", &pos);
printf("Enter element : ");
scanf("%d", &element);
for ( i = 4; i >= (pos-1); i--)
{
a[i+1]=a[i]; // why is this loop only working one time when pos=3
}
这是我的代码部分,我试图将一个元素插入到大小为 5 的数组中 4 个元素开始将元素转移到下一个索引,但我正在从第五个元素本身转移,即 0(或垃圾值)。我知道这不是实现插入的正确方法,但我的 问题是为什么这行代码不起作用
a[i+1]=a[i];
循环似乎也没有工作 3 次,而是 1 次。
我的原始代码:
#include<stdio.h>
int main(){
int a[5],i, pos , element;
printf("Enter elements : ");
for ( i = 0; i < 4; i++)
{
scanf("%d",&a[i]);
}
printf("Enter position : ");
scanf("%d", &pos);
printf("Enter element : ");
scanf("%d", &element);
for ( i = 4; i >= (pos-1); i--)
{
a[i+1]=a[i];
}
a[pos-1]=element;
for ( i = 0; i < 5; i++)
{
printf("%d ",a[i]);
}
return 0;
}
【问题讨论】:
-
请edit 并展示一个简单的输入示例以及实际输出与预期输出。
-
您是否在调试器中逐步执行代码?
标签: arrays c loops for-loop insertion