字符串排序试题的答案,试题请参考附件
#include"stdio.h"
#include"string.h"
void strsort(char str[][20],int n); //声明排序函数
void main()
{
int i=0;
char str[10][20]; //定义一个二维数组用于接收用户所输入的字符串
printf("请输入若干个字符串,最多十个,按“!”结束:\n");
do
{
printf("请输入第%d个字符串:",i+1);
scanf("%s",&str[i]); //接收用户所输入的字符串
if(strcmp(str[i],"!")==0) //判断用户是否想结束输入,如果是,就跳出循环,停止接收
{
break;
}
i++;
}while(i<10);
strsort(str,i); //调用排序函数
}
void strsort(char str[][20],int n) //实现排序函数
{
int i,j;
char temp[20];
printf("按升序排序为:\n");
for(i=0;i<n;i++) //按升序冒泡排序
{
for(j=i+1;j<n;j++) //从它下一个开始比较
{
if(stricmp(str[i],str[j])>0)
{
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
printf("%d %s\n",i+1,str[i]); //j=i 或者 j=i+1,可以在此输出,如果j=0,则需要在排序外输出
}
printf("按降序排序为:\n");
for(i=0;i<n;i++) //按降序冒泡排序
{
for(j=i+1;j<n;j++)
{
if(stricmp(str[i],str[j])<0)
{
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
printf("%d %s\n",i+1,str[i]);
}
}
#include"string.h"
void strsort(char str[][20],int n); //声明排序函数
void main()
{
int i=0;
char str[10][20]; //定义一个二维数组用于接收用户所输入的字符串
printf("请输入若干个字符串,最多十个,按“!”结束:\n");
do
{
printf("请输入第%d个字符串:",i+1);
scanf("%s",&str[i]); //接收用户所输入的字符串
if(strcmp(str[i],"!")==0) //判断用户是否想结束输入,如果是,就跳出循环,停止接收
{
break;
}
i++;
}while(i<10);
strsort(str,i); //调用排序函数
}
void strsort(char str[][20],int n) //实现排序函数
{
int i,j;
char temp[20];
printf("按升序排序为:\n");
for(i=0;i<n;i++) //按升序冒泡排序
{
for(j=i+1;j<n;j++) //从它下一个开始比较
{
if(stricmp(str[i],str[j])>0)
{
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
printf("%d %s\n",i+1,str[i]); //j=i 或者 j=i+1,可以在此输出,如果j=0,则需要在排序外输出
}
printf("按降序排序为:\n");
for(i=0;i<n;i++) //按降序冒泡排序
{
for(j=i+1;j<n;j++)
{
if(stricmp(str[i],str[j])<0)
{
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
printf("%d %s\n",i+1,str[i]);
}
}
转载于:https://blog.51cto.com/youxue/51399