C语言数组元素的移动,把数组的第x个位置的元素先保存起来,然后把x+1到n的元素,依次往前移一位,最后原来的第x个位置的元素放在最后
时间: 2024-05-08 20:14:41 浏览: 16
以下是使用C语言实现数组元素移动的代码:
```
#include <stdio.h>
void shiftArray(int arr[], int x, int n)
{
int temp = arr[x]; // 保存第x个位置的元素
for (int i = x+1; i < n; i++) {
arr[i-1] = arr[i]; // 把x+1到n的元素往前移一位
}
arr[n-1] = temp; // 把保存的元素放在最后
}
int main()
{
int arr[5] = {1, 2, 3, 4, 5};
int x = 2; // 将第三个位置的元素往后移一位
int n = 5;
shiftArray(arr, x, n);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]); // 输出移动后的数组
}
return 0;
}
```
运行结果为:1 2 4 5 3
相关问题
c语言数组怎么添加元素
在C语言中,数组是一组相同类型的数据元素的集合,可以通过下标访问数组中的元素。在数组中添加元素需要进行以下步骤:
1. 定义一个数组,可以多放一个元素。
2. 输入需要添加的元素。
3. 判断需要添加的元素是否是最大的,如果是,则直接加入到最后一位。
4. 如果不是最大的,则找到第一个比需要添加的元素大的数,将该数及其后面的数全部往后移动一位,然后将需要添加的元素插入到该位置。
5. 输出添加元素后的数组。
下面是一个示例代码:
```c
#include <stdio.h>
int main() {
int a[11] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //定义一个数组,可以多放一个元素
int number, i, j;
scanf("%d", &number); //输入需要添加的元素
if (number > a[9]) //如果新加入的元素是最大的,就直接加入到最后一位
a[10] = number;
else {
for (i = 0; i < 10; i++)
if (a[i] > number) //找到第一个比number大的数
{
for (j = 10; j > i; j--)
a[j] = a[j - 1]; //依次往后退一位
a[i] = number;
break;
}
}
for (i = 0; i < 11; i++)
printf("%d\n", a[i]); //输出添加元素后的数组
return 0;
}
```
c语言编程:从键盘读入 n 个整数放入数组中,删除数组中所有值为 0 的元素,其后元素向数组首端移动。输出删除后数组中元素的个数并依次输出数组元素。
下面是一个简单的 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int n, i, j, count = 0;
printf("请输入数组长度 n:");
scanf("%d", &n);
int arr[n]; // 定义数组
printf("请输入 %d 个整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]); // 从键盘读入 n 个整数
if (arr[i] != 0) {
arr[count] = arr[i]; // 删除数组中所有值为 0 的元素,并将其后元素向数组首端移动
count++;
}
}
printf("删除后数组中元素的个数为:%d\n", count);
printf("删除后数组中的元素为:");
for (i = 0; i < count; i++) {
printf("%d ", arr[i]); // 依次输出数组元素
}
printf("\n");
return 0;
}
```
运行程序,输入数组长度和数组元素,即可输出删除后的数组元素。例如:
```
请输入数组长度 n:10
请输入 10 个整数:3 0 5 0 2 0 4 1 0 6
删除后数组中元素的个数为:5
删除后数组中的元素为:3 5 2 4 1
```