-cfyjbjonn
2019-04-21 16:36c语言 给国家的名称按字典顺序排序
40请用指针数组编程实现按奥运会参赛国国名,在字典中的顺序对其入场次序进行排序。
假设参赛国不超过150个。
下面程序中存在比较隐蔽的错误,请通过分析和调试程序,发现并改正程序中的错误。
注意:请将修改正确后的完整源程序拷贝粘贴到答题区内。
对于没有错误的语句,请不要修改,修改原本正确的语句也要扣分。
当且仅当错误全部改正,且程序运行结果调试正确,才给加5分。
经教师手工核对后,如果未用指针数组做函数参数编程,那么即使做对也不给分。
改错时不能改变程序原有的意图,不能改变函数原型。
#include
#define MAX_LEN 10
#define N 150
void SortString(char *ptr[], int n);
main()
{
int i, n;
char *pStr[N];
printf("How many countries?\n");
scanf("%d",&n);
printf("Input their names:\n");
for (i=0; i<n; i++)
{
gets(pStr[i]);
}
SortString(pStr[i], n);
printf("Sorted results:\n");
for (i=0; i<n; i++)
{
puts(pStr[i]);
}
}
void SortString(char *ptr[], int n)
{
int i, j;
char temp;
for (i=0; i<n-1; i++)
{
for (j = i+1; j<n; j++)
{
if (ptr[j] < ptr[i]);
{
temp = ptr[i];
ptr[j] = ptr[i];
ptr[j] = temp;
}
}
}
}
我的代码:
#include <stdio.h>
#include <string.h>
#define MAX_LEN 10
#define N 150
void SortString(char *ptr[], int n);
int main()
{
int i, n;
char *pStr[N];
printf("How many countries?\n");
scanf("%d", &n);
getchar();
printf("Input their names:\n");
for (i = 0; i < n; i++)
{
gets(pStr[i]);
}
SortString(pStr, n);
printf("Sorted results:\n");
for (i = 0; i < n; i++)
{
puts(pStr[i]);
}
return 0;
}
void SortString(char *ptr[], int n)
{
int i, j;
char temp;
for (i = 0; i < n - 1; i++)
{
for (j = i + 1; j < n; j++)
{
if (strcmp(ptr[j] , ptr[i]) < 0 )
{
strcpy(temp , ptr[i]);
strcpy(ptr[j] , ptr[i]);
strcpy(ptr[j] , temp);
}
}
}
}
我改过的答案哪里有错?
- 点赞
- 回答
- 收藏
- 复制链接分享
3条回答
为你推荐
- 程序改错: 【程序功能】 以下程序的功能是对获得学位的学生名单排序?
- c语言
- 1个回答
- 57. 程序改错: 【程序功能】 将两个按字典顺序排序的名字登记表合并?
- c语言
- 1个回答
- 【问题描述】 编写一个程序,从键盘接收一个字符串(长度不超过20),采用插入排序,按照字符顺序从小到大进行排序,最后输出排序后的字符串。
- c语言
- 1个回答
- C语言简单排序的一道题,希望大神帮我改到满分
- c语言
- 2个回答
- C语言 单词卡字母排序和随机兼抽取
- c语言
- 2个回答