c - 如何在C中将数组元素移动n个位置
问题描述
如果我们有一个数组,例如 Arr[] = {1,2,3,4,5} 并且我想将元素移动 2,我该怎么做?数组应该是:{3,4,5,1,2}。我试图以这种方式解决问题:
#include <stdio.h>
int main(void) {
int broj,pom,i,niza1[10],niza2[10],raz,tem=0,rest=0;
scanf("%d%d",&broj,&pom);//broj= number of elements and pom=shifting
for (int i=0;i<broj;i++){
scanf ("%d",&niza1[i]);
}
raz=broj-pom;//difrence between thenumber of elements and shifting
for (int i=raz;i<=broj;i++){
niza2[tem]=niza1[i-1];
tem++;
}
for (int i=0;i<broj;i++){
printf("%d",niza2[i]);
}
return 0;
}
输入:5 2 1 2 3 4 5 结果:3 4 5 0 0
如何在数组中添加最后两个数字?
解决方案
您只是将broz - raz
元素复制到新数组中。
raz=broj-pom;//difrence between thenumber of elements and shifting
for (int i=raz;i<=broj;i++){
niza2[tem]=niza1[i-1];
tem++;
}
应该
- 我删除了不必要
tem
的变量。 (i+raz)%broj
你需要%
包装复制。raz=broj-pom;//difrence between thenumber of elements and shifting for (int i=0;i<broj;i++){ niza2[i]=niza1[(i+raz)%broj]; }
推荐阅读
- sql - 在 FINAL_VALUE 列中累积上一行的值
- javascript - 无法从 React Native Paper 添加底部导航
- sql - 来自拥有 5000 万用户的 SQL 数据库的快速用户名密码匹配
- javascript - FabricJS多边形高度宽度不增加对象大小但边界框
- c# - 每个文件在 ASP.NET MVC 站点上的初始加载都很慢
- echo - 回声计数器总是在同一个屏幕位置?
- r - ggplot2中构面的组标题标签
- json - D3 v5缩放控制气泡图json异步数据
- powershell - 为什么这不在目标服务器上创建文件?
- java - 在WebDriver中用图标图像分隔时如何从段落中提取文本段