从键盘上输入10个整数存放到一维数组中,用函数实现将10个整数按输入时的顺序逆序排列,函数中对数据的处理要用指针方法实现。
时间: 2023-05-31 13:19:27 浏览: 1351
C语言程序设计-从键盘为一维整型数组输入10个整数,调用fun函数找出其中最小的数,
5星 · 资源好评率100%
### 回答1:
可以使用以下代码实现:
```c
#include <stdio.h>
void reverse(int *arr, int len) {
int i, temp;
for (i = ; i < len / 2; i++) {
temp = *(arr + i);
*(arr + i) = *(arr + len - i - 1);
*(arr + len - i - 1) = temp;
}
}
int main() {
int arr[10];
int i;
printf("请输入10个整数:\n");
for (i = ; i < 10; i++) {
scanf("%d", &arr[i]);
}
reverse(arr, 10);
printf("逆序排列后的数组为:\n");
for (i = ; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return ;
}
```
其中,reverse函数用于将数组逆序排列,使用指针方法实现。在main函数中,先输入10个整数存放到数组中,然后调用reverse函数将数组逆序排列,最后输出逆序排列后的数组。
### 回答2:
题目要求我们从键盘上输入10个整数并存放到一维数组中,并使用函数将其按输入时的顺序逆序排列。这道题可以用指针方法来实现。
首先,在程序中定义一个长度为10的一维数组,用于存放输入的10个整数。然后,我们需要编写一个函数,用于将数组按输入时的顺序逆序排列。该函数需要接收一个指针,指向输入的数组,并用指针的方法对数组进行操作,实现数组的逆序排列。
函数的核心思路是,将数组的第一个元素与最后一个元素交换位置,然后将第二个元素与倒数第二个元素交换位置,以此类推,直到第5个元素与第6个元素完成交换为止。因为整个数组有10个元素,所以需要进行5轮的循环交换,每轮交换通过指针的方法实现。
以下是示例代码:
```c
#include <stdio.h>
void reverse(int *arr) {
int i, temp;
for (i = 0; i < 5; i++) {
temp = *(arr + i); // 保存第i个元素的值
*(arr + i) = *(arr + 9 - i); // 将第i个元素与倒数第i个元素交换
*(arr + 9 - i) = temp; // 将倒数第i个元素的值赋给第i个元素
}
}
int main() {
int i, arr[10];
printf("请输入10个整数:\n");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]); // 从键盘上输入10个整数并存放到数组中
}
printf("输入的数组:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]); // 打印输入的数组
}
reverse(arr); // 调用函数将数组按输入时的顺序逆序排列
printf("\n逆序排列后的数组:\n");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]); // 打印逆序排列后的数组
}
return 0;
}
```
运行程序后,我们可以输入任意10个整数,程序会按顺序逆序排列后输出结果,例如:
```
请输入10个整数:
1 2 3 4 5 6 7 8 9 10
输入的数组:
1 2 3 4 5 6 7 8 9 10
逆序排列后的数组:
10 9 8 7 6 5 4 3 2 1
```
通过这个实例,我们了解了指针方法在数组操作中的应用,学会了如何编写函数对一维数组进行指针操作,实现数组的逆序排列。
### 回答3:
这道题的主要思路是利用指针来倒序排列整个数组,实现这个思路的代码如下:
```c
#include <stdio.h>
void reverse(int *arr, int len) {
int *p = arr; // 定义一个指针,指向数组的第一个元素
int *q = arr + len - 1; // 定义另一个指针,指向数组的最后一个元素
while (p < q) { // 只要p指针还没到达最后一个元素的位置就继续往前移动
int temp = *p; // 交换两个指针指向的元素
*p++ = *q;
*q-- = temp;
}
}
int main() {
int arr[10];
printf("请输入10个整数:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
printf("输入的顺序:");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
reverse(arr, 10);
printf("逆序的顺序:");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
首先,在`main()`函数中定义一个长度为10的整型数组,并通过键盘输入给这个数组中的每个元素赋值。然后,我们就可以利用`reverse()`函数来对这个数组进行逆序排列了。
`reverse()`函数中,我们定义两个指针`p`和`q`,分别指向数组的第一个元素和最后一个元素。然后,使用指针移动的方式,对两个指针指向的元素进行交换。具体而言,只需要先将`p`指针所指向的元素保存到一个临时变量`temp`中,然后将`q`指针所指向的元素赋值给`p`所指向的元素,将`temp`的值赋给`q`所指向的元素,最后将`p`指针往前移动一位,将`q`指针往后移动一位即可。
最后,在`main()`函数中,我们先输出原来的数组,再调用`reverse()`函数将这个数组逆序排列后输出。
阅读全文