#include #include main() { int a[10]={0,1,2,4,5},i; printf("原数组为:\n"); for(i=0;i<5;i++) { printf("%4d",a[i]); } a[3]=3; for(i=4;i>=0;i--) { if(a[i]>3) a[i+1]=a[i]; else a[i+1]=3; break; } printf("\n新数组为:\n"); for(i=0;i<6;i++) { printf("%4d",a[i]); } system("pause"); } (初学C++,请不要用高级函数解答,谢谢)
if(i >3) a[i+1]=a[i]; else if(i ==3) a[i+1]=3; break;
可以先将从指定最后一个数开始,一直向后移动,直到指定下标就设置就好了。比如将 a[i+1] = a[i],直到 i =3就停止,这个时候你就直接赋值就好了。
思路,找到索引3的位置,将3赋值给索引3对应的位置,大于索引3的位置,都往后移一个位置。
for(i=4;i>=3;i--) { a[i+1]=a[i]; } a[3]=3;
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632