请编写函数 fun 该函数的功能是:移动一维数组中的内容;若数组中有10个整数,要求把下标从0到p(p 小于等于9)的数组元素平移到数组的最后。在主程序中调用该函数,得到调整后的新数组的倒数三个数组元素的值并从小到大排列输出到屏幕上。
时间: 2024-03-01 09:50:10 浏览: 18
根据您的要求,我为您编写了以下的函数fun,该函数可以移动一维数组中的内容,具体如下所示:
```c
#include <stdio.h>
void fun(int arr[], int p){
int i, temp;
for(i = 0; i <= p; i++){
temp = arr[i];
arr[i] = arr[i + 10 - p - 1];
arr[i + 10 - p - 1] = temp;
}
}
int main(){
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int p = 5; // 假设要移动的下标为5
fun(arr, p);
int i;
// 输出倒数三个元素的值
for(i = 7; i < 10; i++){
printf("%d ", arr[i]);
}
printf("\n");
// 对倒数三个元素的值进行从小到大排序
for(i = 7; i < 9; i++){
int j;
for(j = i + 1; j < 10; j++){
if(arr[i] > arr[j]){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 再次输出倒数三个元素的值
for(i = 7; i < 10; i++){
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在主函数中,我们首先定义了一个长度为10的数组arr,然后调用函数fun,将下标0到p的元素移动到了数组的最后面。接着,我们输出了倒数三个元素的值并且对这三个元素进行了从小到大的排序,最后再次输出这三个元素的值。
阅读全文