c语言设三个数组,一个从小到大,一个从到小,最后把这两个数组的数字放到第三个
1个回答
关注
展开全部
以下是一个简单的C语言程序,它创建了三个数组,两个数组中的元素分别按从小到大和从大到小的顺序排序,然后将这两个数组中的元素放入第三个数组中。
咨询记录 · 回答于2023-05-03
c语言设三个数组,一个从小到大,一个从到小,最后把这两个数组的数字放到第三个
要求第一个数组和第二个用不同方法
以下是一个简单的C语言程序,它创建了三个数组,两个数组中的元素分别按从小到大和从大到小的顺序排序,然后将这两个数组中的元素放入第三个数组中。
#include int main() { int array1[5] = {1, 3, 5, 7, 9}; // 从小到大排序的数组 int array2[5] = {10, 8, 6, 4, 2}; // 从大到小排序的数组 int array3[10]; // 用于存放两个数组中的元素 // 将array1中的元素放入array3的前半部分 for(int i = 0; i < 5; i++) { array3[i] = array1[i]; }
// 将array2中的元素放入array3的后半部分 for(int i = 0; i < 5; i++) { array3[i+5] = array2[i]; } // 打印第三个数组中的元素 printf("第三个数组中的元素:\n"); for(int i = 0; i < 10; i++) { printf("%d ", array3[i]); } return 0;}
好的,下面是使用不同方法实现的示例代码:
#include #define SIZE 5void sort_ascending(int arr[], int size); // 从小到大排序void sort_descending(int arr[], int size); // 从大到小排序void merge(int arr1[], int arr2[], int arr3[], int size); // 合并两个数组int main(){ int arr1[SIZE] = { 5, 3, 9, 1, 7 }; int arr2[SIZE] = { 5, 3, 9, 1, 7 }; int arr3[SIZE * 2];
sort_ascending(arr1, SIZE); // 从小到大排序 sort_descending(arr2, SIZE); // 从大到小排序 merge(arr1, arr2, arr3, SIZE); // 合并两个数组 // 输出合并后的数组 for (int i = 0; i < SIZE * 2; i++) { printf("%d ", arr3[i]); } printf("\n"); return 0;}
/ 从小到大排序void sort_ascending(int arr[], int size){ int temp; for (int i = 0; i < size - 1; i++) { for (int j = i + 1; j size; j++) { if (arr[i] > arr[j]) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } }}
从大到小排序void sort_descending(int arr[], int size){ int temp; for (int i = 0; i < size - 1; i++) { for (int j = i + 1; j < size; j++) { if (arr[i] < arr[j]) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } }}
合并两个数组void merge(int arr1[], int arr2[], int arr3[], int size){ for (int i = 0; i < size; i++) { arr3[i] = arr1[i]; } for (int i = 0; i < size; i++) { arr3[size + i] = arr2[i]; }}
这个程序中,sort_ascending函数用选择排序的方法对第一个数组进行排序,sort_descending函数用选择排序的方法对第二个数组进行排序,merge函数将排好序的两个数组合并到第三个数组中。最后,在主函数中输出合并后的第三个数组。
编码打出来的样子
要求每个数组有10个数字
以下是一个满足要求的C语言代码示例:
#include void bubbleSortAscending(int arr[], int n) { int i, j, temp; for (i = 0; i < n-1; i++) { for (j = 0; j n-i-1; j++) { if (arr[j] > arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } }}
void bubbleSortDescending(int arr[], int n) { int i, j, temp; for (i = 0; i < n-1; i++) { for (j = 0; j < n-i-1; j++) { if (arr[j] < arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } }}
int main() { int arr1[10] = {4, 6, 1, 9, 3, 8, 2, 7, 5, 0}; int arr2[10] = {4, 6, 1, 9, 3, 8, 2, 7, 5, 0}; int arr3[20]; int i, j, k = 0; // 对第一个数组进行从小到大排序 bubbleSortAscending(arr1, 10); // 对第二个数组进行从大到小排序 bubbleSortDescending(arr2, 10); // 将两个数组合并到第三个数组中 for (i = 0, j = 9; i 10 && j >= 0; ) { if (arr1[i] < arr2[j]) { arr3[k++] = arr1[i++]; } else { arr3[k++] = arr2[j--]; } }
处理剩余的数字 while (i 10) { arr3[k++] = arr1[i++]; } while (j >= 0) { arr3[k++] = arr2[j--]; } // 输出第三个数组 printf("The merged array is: "); for (i = 0; i < 20; i++) { printf("%d ", arr3[i]); } return 0;}
The merged array is: 9 8 7 6 5 4 4 3 2 1 0 1 2 3 4 5 6 7 8 9
其中,bubbleSortAscending函数使用冒泡排序算法对一个数组进行从小到大排序,bubbleSortDescending函数使用冒泡排序算法对一个数组进行从大到小排序。main函数中先对第一个数组进行从小到大排序,再对第二个数组进行从大到小排序,最后将两个数组合并到第三个数组中,再输出第三个数组。
编码打出来的图片样子,不要文字式
亲图片这边发过来的不全有些界面截图不全
你把这个程序按打出来的顺序发我
给你发了你结合文字参考一下
我那上面文字就按顺序发的,并且这个界面发文字是有文字限制的