输入两行字符串代表两个数组,数组以英文半角逗号隔开,将两个数组合并为新的数组并进行降序排序
时间: 2024-03-22 21:39:22 浏览: 84
以下是一个示例代码,实现了输入两行字符串代表两个数组,将它们合并为新的数组并进行降序排序的功能:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 100
int compare(const void *a, const void *b) {
return *(int *)b - *(int *)a;
}
int main() {
char str1[MAX_LEN], str2[MAX_LEN];
int arr1[MAX_LEN], arr2[MAX_LEN], newArr[MAX_LEN];
int len1 = 0, len2 = 0, len = 0;
// 读入两个数组
fgets(str1, MAX_LEN, stdin);
fgets(str2, MAX_LEN, stdin);
// 分割字符串,将字符串转换成整数数组
char *token = strtok(str1, ",");
while (token != NULL) {
arr1[len1++] = atoi(token);
token = strtok(NULL, ",");
}
token = strtok(str2, ",");
while (token != NULL) {
arr2[len2++] = atoi(token);
token = strtok(NULL, ",");
}
// 合并两个数组
memcpy(newArr, arr1, len1 * sizeof(int));
memcpy(newArr + len1, arr2, len2 * sizeof(int));
len = len1 + len2;
// 降序排序
qsort(newArr, len, sizeof(int), compare);
// 输出结果
for (int i = 0; i < len; i++) {
printf("%d", newArr[i]);
if (i != len - 1) {
printf(",");
}
}
printf("\n");
return 0;
}
```
该代码中使用了 `fgets` 函数读入两个字符串,并使用 `strtok` 函数将字符串分割成整数数组。然后,将两个数组合并为一个新的数组,并使用 `qsort` 函数进行降序排序。最后,输出排序后的新数组。
阅读全文