用c语言编写程序,使用起泡法和选择法将字符串按ASCII码值从小到大排列
时间: 2024-05-15 18:13:30 浏览: 12
下面是用起泡法和选择法将字符串按ASCII码值从小到大排列的C语言程序:
起泡法:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[10][50], temp[50];
int i, j, n;
printf("Enter number of strings: ");
scanf("%d", &n);
printf("Enter strings:\n");
for (i = 0; i < n; i++)
scanf("%s", str[i]);
// Bubble sort
for (i = 0; i < n-1; i++)
{
for (j = 0; j < n-i-1; j++)
{
if (strcmp(str[j], str[j+1]) > 0)
{
strcpy(temp, str[j]);
strcpy(str[j], str[j+1]);
strcpy(str[j+1], temp);
}
}
}
printf("Sorted strings in alphabetical order:\n");
for (i = 0; i < n; i++)
printf("%s\n", str[i]);
return 0;
}
```
选择法:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[10][50], temp[50];
int i, j, min, n;
printf("Enter number of strings: ");
scanf("%d", &n);
printf("Enter strings:\n");
for (i = 0; i < n; i++)
scanf("%s", str[i]);
// Selection sort
for (i = 0; i < n-1; i++)
{
min = i;
for (j = i+1; j < n; j++)
{
if (strcmp(str[j], str[min]) < 0)
min = j;
}
if (min != i)
{
strcpy(temp, str[i]);
strcpy(str[i], str[min]);
strcpy(str[min], temp);
}
}
printf("Sorted strings in alphabetical order:\n");
for (i = 0; i < n; i++)
printf("%s\n", str[i]);
return 0;
}
```
这两个程序都是通过字符串库函数`strcmp()`来比较两个字符串的大小关系,然后根据排序算法交换字符串的位置来实现排序。