c语言冒泡法排序10个字符
时间: 2023-11-06 19:14:34 浏览: 91
以下是一个使用冒泡排序算法对10个字符进行排序的C语言代码示例:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char arr[10] = {'d', 'b', 'f', 'a', 'c', 'e', 'h', 'g', 'j', 'i'};
int n = 10;
int i, j;
char 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;
}
}
}
// 输出排序后的字符数组
for (i = 0; i < n; i++) {
printf("%c ", arr[i]);
}
return 0;
}
```
输出结果为:
```
a b c d e f g h i j
```
相关问题
设计一个函数,利用冒泡法对若干个字符串进行排序,利用C语言,使用指针数组存储字符串,
这是一个有效问题。冒泡排序是一种排序算法,其基本思想是对相邻的元素进行比较和交换,以此将小的元素逐步“冒泡”到数组的前面。对于字符串的排序,可以利用指针数组存储多个字符串,然后按照字符串的字典序进行比较和交换。以下是一个利用冒泡排序对字符串进行排序的C语言示例代码:
```
#include <stdio.h>
#include <string.h>
#define MAX_STR_LEN 100
#define MAX_STR_NUM 10
void bubble_sort(char *str[], int n)
{
int i, j;
char *temp;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (strcmp(str[j], str[j+1]) > 0)
{
temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
}
int main()
{
char str[MAX_STR_NUM][MAX_STR_LEN];
char *str_ptr[MAX_STR_NUM];
int n, i;
printf("Enter the number of strings: ");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
printf("Enter string %d: ",i+1);
scanf("%s", str[i]);
str_ptr[i] = str[i];
}
bubble_sort(str_ptr, n);
printf("Sorted strings:\n");
for (i = 0; i < n; i++)
{
printf("%s\n", str_ptr[i]);
}
return 0;
}
```
该程序通过定义一个指针数组 `str_ptr` 来存储多个字符串,然后使用 `strcmp()` 函数来比较字符串的大小关系,完成字符串的排序。在程序运行时,先输入要排序的字符串数量 `n`,然后输入 `n` 个字符串,程序将自动按照字典序递增的顺序对字符串进行排序,并输出排序后的字符串。
c语言:编程将两个字符串连接成一个字符串,并将连接后的字符串按升序排列,要求:排列用函数实现,使用冒泡法排序或者选择排序
以下是使用选择排序实现的示例代码:
```c
#include <stdio.h>
#include <string.h>
void sort(char *str, int n) {
int i, j;
char temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (str[i] > str[j]) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
int main() {
char str1[100], str2[100], str3[200];
int len1, len2, i, j;
printf("请输入第一个字符串:");
gets(str1);
printf("请输入第二个字符串:");
gets(str2);
len1 = strlen(str1);
len2 = strlen(str2);
// 连接两个字符串
for (i = 0; i < len1; i++) {
str3[i] = str1[i];
}
for (j = 0; j < len2; j++) {
str3[i + j] = str2[j];
}
str3[i + j] = '\0';
// 排序
sort(str3, len1 + len2);
printf("连接后的字符串为:%s", str3);
return 0;
}
```
输入示例:
```
请输入第一个字符串:hello
请输入第二个字符串:world
```
输出示例:
```
连接后的字符串为:dehllloorw
```
阅读全文