c语言对八个参赛国家按在英文字典中的顺序进行排序的问题,用指针作为参数实现
时间: 2024-02-11 18:09:47 浏览: 78
好的,这是一个经典的排序问题,可以使用指针作为参数来实现。以下是一个简单的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(strcmp(str[i], str[j]) > 0)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
int main()
{
char *countries[] = {"China", "France", "Germany", "India", "Italy", "Russia", "UK", "USA"};
int i, n;
n = sizeof(countries)/sizeof(char *);
printf("Before sorting:\n");
for(i = 0; i < n; i++)
{
printf("%s\n", countries[i]);
}
sort(countries, n);
printf("\nAfter sorting:\n");
for(i = 0; i < n; i++)
{
printf("%s\n", countries[i]);
}
return 0;
}
```
在这个程序中,我们定义了一个指向字符串指针的指针 `char **str`,它作为函数 `sort()` 的参数。函数 `sort()` 中使用了一个简单的选择排序算法,对字符串指针进行排序。
在 `main()` 函数中,我们定义了一个包含八个字符串指针的数组 `countries`,并且计算出了数组的大小。我们首先打印出未排序的字符串,然后调用函数 `sort()` 进行排序,最后再次打印出已经排序的字符串。
阅读全文