C语言实现:【问题描述】利用函数和指针编写一个程序,在main函数中建立并输入一个10个元素的数组,在SwapFive函数中实现前5个元素和后5个元素之间的对调。【样例输入】1 2 3 4 5 6 7 8 9 10 【样例输出】6 7 8 9 10 1 2 3 4 5
时间: 2023-12-27 19:04:09 浏览: 21
好的,这是一个比较简单的数组操作问题,我来为你解答。
首先,在主程序中读取输入的数组,然后调用 `SwapFive()` 函数将前5个元素和后5个元素之间进行对调,最后打印调整后的数组即可。具体代码实现如下:
```c
#include <stdio.h>
void SwapFive(int *a);
int main() {
int a[10];
for (int i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
SwapFive(a);
for (int i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
void SwapFive(int *a) {
for (int i = 0; i < 5; i++) {
int t = *(a + i);
*(a + i) = *(a + 5 + i);
*(a + 5 + i) = t;
}
}
```
其中,`SwapFive()` 函数接受一个整型指针 `a`,其实际上就是指向数组的首元素的指针。在实现中,我们通过指针的方法,依次交换前5个元素和后5个元素的值。
希望这个代码能够帮助到你,如果还有其他问题,请继续提问。
相关问题
C语言中定义一个函数,使用指针实现数组元素的反置并在主函数中调用
可以定义一个函数,使用指针实现数组元素的反置,例如:
```c
void reverse(int *arr, int n) {
int *start = arr;
int *end = arr + n - 1;
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
```
在主函数中,可以先定义一个数组,然后调用上面的函数实现反置,例如:
```c
#include <stdio.h>
void reverse(int *arr, int n);
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(int);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
reverse(arr, n);
printf("Reversed array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
void reverse(int *arr, int n) {
int *start = arr;
int *end = arr + n - 1;
while (start < end) {
int temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
```
输出结果如下:
```
Original array: 1 2 3 4 5
Reversed array: 5 4 3 2 1
```
用C语言实现:编写函数把数组中所有奇数放在另一个数组中
可以使用以下代码实现将数组中所有奇数放在另一个数组中:
```c
#include <stdio.h>
void move_odd(int arr[], int size, int odd_arr[], int *odd_size) {
int i, j = 0;
for (i = 0; i < size; i++) {
if (arr[i] % 2 != 0) {
odd_arr[j++] = arr[i];
}
}
*odd_size = j;
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int size = sizeof(arr) / sizeof(arr[0]);
int odd_arr[size], odd_size = 0;
move_odd(arr, size, odd_arr, &odd_size);
printf("Odd numbers: ");
for (int i = 0; i < odd_size; i++) {
printf("%d ", odd_arr[i]);
}
printf("\n");
return 0;
}
```
在这个代码中,我们定义了一个名为`move_odd`的函数,这个函数有四个参数:一个整型数组`arr`,数组的大小`size`,一个整型数组`odd_arr`和一个指向整型变量的指针`odd_size`。函数会遍历整个数组`arr`,如果当前元素是奇数,就将它添加到`odd_arr`中,同时`odd_size`也会增加。最后,我们可以在`main`函数中调用`move_odd`函数,并打印出`odd_arr`数组中的奇数。