给出一个字符串数组,字符串按大小进行排序输出
时间: 2023-04-03 08:02:45 浏览: 87
好的,这个问题可以回答。可以使用 C 语言中的 qsort 函数进行排序,代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int cmp(const void *a, const void *b) {
return strcmp(*(const char **)a, *(const char **)b);
}
int main() {
char *arr[] = {"hello", "world", "apple", "banana", "cat"};
int n = sizeof(arr) / sizeof(arr[0]);
qsort(arr, n, sizeof(char *), cmp);
for (int i = 0; i < n; i++) {
printf("%s ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
apple banana cat hello world
```
相关问题
数组与函数C语言作业 1.输入一个5行5列的int型数组,输出每行和每列的平均值 2.编写一个函数sortStrings,该函数接受一个字符串数组和数组的大小作为参数,使用冒泡排序算法对字符串数组进行排序。
在C语言中,你可以通过以下几个步骤来完成这两个任务:
1. 输入一个5行5列的整数(int)数组并计算每行和每列的平均值:
```c
#include <stdio.h>
void calculate_row_col_avg(int arr[5][5], int rows, int cols) {
// 计算每行的平均值
for (int i = 0; i < rows; i++) {
int sum = 0;
for (int j = 0; j < cols; j++) {
sum += arr[i][j];
}
float avg = (float)sum / cols;
printf("Row %d average: %.2f\n", i+1, avg);
}
// 计算每列的平均值
for (int j = 0; j < cols; j++) {
int sum = 0;
for (int i = 0; i < rows; i++) {
sum += arr[i][j];
}
float avg = (float)sum / rows;
printf("Column %d average: %.2f\n", j+1, avg);
}
}
int main() {
int arr[5][5];
// 读取数组元素
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
scanf("%d", &arr[i][j]);
}
}
// 调用函数计算并打印平均值
int rows = 5, cols = 5;
calculate_row_col_avg(arr, rows, cols);
return 0;
}
```
2. 编写一个名为`sortStrings`的函数,使用冒泡排序算法对字符串数组进行排序:
```c
#include <stdio.h>
#include <string.h>
// 冒泡排序字符串数组的函数
void sortStrings(char strings[][20], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (strcmp(strings[j], strings[j + 1]) > 0) {
char temp[20];
strcpy(temp, strings[j]); // 备份当前元素
strcpy(strings[j], strings[j + 1]);
strcpy(strings[j + 1], temp); // 将较大的移动到后位
}
}
}
}
int main() {
char strings[5][20]; // 假设我们有5个字符串
int size;
// 读取字符串数组和大小
printf("Enter number of strings and their values:\n");
scanf("%d", &size);
for (int i = 0; i < size; i++) {
fgets(strings[i], sizeof(strings[i]), stdin); // 从用户那里获取字符串,包括换行符
strings[i][strcspn(strings[i], "\n")] = '\0'; // 删除换行符
}
// 对字符串数组进行排序
sortStrings(strings, size);
// 打印排序后的字符串
for (int i = 0; i < size; i++) {
printf("%s ", strings[i]);
}
printf("\n");
return 0;
}
```
.创建一个字符串数组(只含数字),将字符串数组里面的数从小到大排序,并输出
### 回答1:
可以使用Java语言的Arrays.sort()方法进行排序,示例代码如下:
```java
public static void main(String[] args) {
String[] nums = {"5", "3", "9", "1", "8"};
Arrays.sort(nums);
System.out.println(Arrays.toString(nums));
}
```
输出结果为:`[1, 3, 5, 8, 9]`
需要注意的是,由于数组中的元素是字符串类型,所以排序结果也是字符串类型的。如果需要将排序后的结果转换为整型,可以使用Integer.parseInt()方法。
### 回答2:
首先,需要创建一个字符串数组,该数组只包含数字。可以定义一个字符串数组,例如arr,将数字按照字符串的形式存储在其中。例如,可以定义一个字符串数组arr = ["12", "5", "3", "8", "24"]。
接下来,需要按照从小到大的顺序对字符串数组进行排序。由于要按照数字的大小进行排序,而字符串数组中的元素是字符串类型的数字,所以需要通过将字符串转换成数字来比较大小。可以使用int()函数将字符串转换为整数,对字符串数组进行排序。
排序可以使用Python内置的sort()函数,将字符串数组arr作为参数传入sort()函数中,即arr.sort()。该函数会对数组进行原地排序,即直接修改原数组arr的顺序。
最后,需要输出排序后的结果。可以使用for循环遍历排序后的数组,依次输出每个元素。在每次输出时,可以使用print()函数将元素打印出来。
完整代码如下:
```python
arr = ["12", "5", "3", "8", "24"] # 创建一个字符串数组,只包含数字
arr.sort() # 对数组进行排序
# 输出排序后的结果
for num in arr:
print(num)
```
运行以上代码,会输出按照从小到大顺序排列的数字字符串数组的结果:
```
3
5
8
12
24
```
通过以上步骤,可以创建一个字符串数组,并将数组中的数字按照从小到大的顺序进行排序并输出。
### 回答3:
要创建一个字符串数组,并将数组中的数字按从小到大的顺序进行排序,然后输出。
首先,我们需要创建一个字符串数组,数组内的元素只包含数字。例如,我们创建一个名为strings的字符串数组,包含以下元素:["5", "2", "9", "1", "3"]。
然后,我们需要将字符串数组中的元素转换为整数类型,并存储在一个整数数组中。例如,我们创建一个名为numbers的整数数组,并将字符串数组中的元素转换为整数类型存储在其中,即numbers = [5, 2, 9, 1, 3]。
接下来,我们使用排序算法(例如冒泡排序或快速排序)对整数数组进行排序。以冒泡排序为例,我们可以使用嵌套循环,依次比较相邻的两个元素,并根据它们的大小进行交换,直到数组完全排序。
最后,我们将排序后的整数数组转换回字符串数组,并输出排序结果。例如,我们将整数数组中的元素转换为字符串类型,并存储在一个新的字符串数组中,即strings_sorted = ["1", "2", "3", "5", "9"]。
最终,我们打印输出字符串数组strings_sorted,即可得到排序后的结果:["1", "2", "3", "5", "9"]。
阅读全文