c语言代码;6-1 指针数组作函数参数,实现姓名排序。 分数 15 作者 陶利 单位 合肥师范学院 本题要求实现一个函数,实现学生英文名按照其在字典中的顺序进行排序,假设学生不超过20个。要求如下:用指针数组作函数参数,实现字符串的按字典顺序排列。 函数接口定义: void SortString ( char *ptr[], int n ); 其中 ptr[] 为字符指针数组, n 为学生数量。 裁判测试程序样例: #include <stdio.h> #include <string.h> #define MAX_LEN 10 #define N 20 void SortString ( char *ptr[], int n ); int main() { int i,n; char name[N][MAX_LEN]; //定义二维字符数组 char *pStr[N]; //定义字符指针数组 scanf("%d", &n); getchar(); //读走缓冲区中的回车符 for(i=0; i<n; i++) { pStr[i] =name[i]; gets(pStr[i]); } SortString(pStr, n); //英文姓名按字典顺序排列 for(i=0; i<n; i++) { puts(pStr[i]); //输出排序后的n个名字 } return 0; } /* 请在这里填写答案 */ 输入样例: 6 james john david jane mary elizabeth 输出样例: david elizabeth james jane john mary
时间: 2024-01-06 10:03:26 浏览: 154
```
#include <stdio.h>
#include <string.h>
#define MAX_LEN 10
#define N 20
void SortString(char *ptr[], int n);
int main()
{
int i, n;
char name[N][MAX_LEN]; //定义二维字符数组
char *pStr[N]; //定义字符指针数组
scanf("%d", &n);
getchar(); //读走缓冲区中的回车符
for (i = 0; i < n; i++)
{
pStr[i] = name[i];
gets(pStr[i]);
}
SortString(pStr, n); //英文姓名按字典顺序排列
for (i = 0; i < n; i++)
{
puts(pStr[i]); //输出排序后的n个名字
}
return 0;
}
// 比较两个字符串的大小
int CompareString(char *s1, char *s2)
{
return strcmp(s1, s2);
}
// 冒泡排序,将指针数组排序
void SortString(char *ptr[], int n)
{
int i, j;
char *temp;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - i - 1; j++)
{
if (CompareString(ptr[j], ptr[j + 1]) > 0)
{
temp = ptr[j];
ptr[j] = ptr[j + 1];
ptr[j + 1] = temp;
}
}
}
}
```
阅读全文
相关推荐
















