如何将5个字符串从键盘输入给二维字符数组name。把这5个字符串按由小到大的顺序排序并将排序的结果输出?

如题所述

第1个回答  2011-05-11
#include<stdio.h>
#include<stdlib.h>
int main()
{
char s[4][20];//定义一个二维数组
char temp[20];//定义一个用于交换的中间变量
int i,j;
puts("\nenter string:");
for(i=0;i<4;i++)
gets(s[i]);
for(i=0;i<3;i++)
{
int max=i;
for(j=i;j<4;j++)
if(strcmp(s[i],s[j])>0)
max=j;//交换下标
strcpy(temp,s[max]);
strcpy(s[max],s[i]);
strcpy(s[i],temp);
}
for(i=0;i<4;i++)
puts(s[i]);
return 0;
}
本回答被提问者采纳
第2个回答  2011-05-11
#define N 5
void sort(char *p[],int n){
char *str;
int i,j,k;
for(i=0;i<n;i++)
{
k=i;
strcpy(str,p[i]);
for(j=i+1;j<n;j++)
{
if(strcmp(p[j],str)<0)
{
k=j;
}
}
if(i!=k)
{
strcpy(p[i],p[k]);
strcpy(p[k],str);
}
}
}

void print(char *p[],int n){
int i;
printf("\n\nHere is the sorted result:\n");
for(i=0;i<n;i++)
{
printf("%s\n",p[i]);
}
}

main(){

char *strarray[N];
int i;
printf("Please input characters:\n");
for(i=0;i<N;i++)
{
gets(strarray[i]);
}

sort(strarray,N);
print(strarray,N);
}

输入5个字符串,按由小到大的顺序输出(用指针做)
include<string.h> main(){ int i,j;char t[5];char a[5][5]={'\\0'};printf("输入5个字符串");for(i=0;i<5;i++)scanf("%s",&a);for(i=0;i<5;i++)for(j=0;j<5-i;j++){ if(strcmp(a[j],a[j+1])>0){ strcpy(t,a[j]);strcpy(a[j],a[j+1]);strcpy(...

C语言,输入5个字符串,按由小到大的顺序输出。非常急,求指导!
char *a[5], b[5][99], **p;int i;for (i = 0; i < 5; i++)a[i] = b[i];printf("请依次输入五个字符串:\\n");for (i = 0; i < 5; i++)scanf("%s", a[i]);p = a;sort(p);printf("排序后输出为:\\n");for (i = 0; i < 5; i++){ printf("%s\\...

C语言:输入5个字符串,按由小到大(我想应该是strcmp函数比较)的顺序输 ...
include<string.h> define M 5 define N 20 void main(){ char str[M][N],temp[N];int i,j;for(i=0;i<M;i++){ printf("请输入第%d个字符串:",i+1);scanf("%s",&str[i]);} printf("排序前:\\n");for(i=0;i<M;i++)printf("第%d个字符串:%s\\n",i+1,str[i]);f...

编写C程序:用指针数组操作,将输入的5个字符串按从小到大的顺序输出
特殊要求:任意输入一个数列,先排序由小到大 然后再随意插入一个数,按有小到大排列 思路1:输入数接着存入数组,从新排列。(简单)思路2:排列完大小后插入(复杂)。本程序采用思路1.\/ int a[256];int i = 0;\/\/p = a;do { scanf("%d",&a[i]);} while(0 != a[i++]); \/\/...

...即按ASCII码从小到大的顺序)输出这五个字符串。
include<stdio.h> include<string.h> define N 5 void main(){ int i,j;char str[N][80],temp[80];printf("请输入%d个字符串:\\n",N);for(i=0;i<N;i++){ gets(str[i]);} for(i=0;i<N-1;i++)for(j=i+1;j<N;j++)if(strcmp(str[i],str[j])>0){ strcpy(temp,...

Pythone输入5个字符串由小到大输出编绎
s=input('input a string:')s1=''.join(['%s%d' % (s[i],i) for i in range(len(s))])print(s1)

c++有5个字符串,要求对它们按由小到大顺序排列,用string方法。求...
int i; \/\/创建变量i string str[5]; \/\/定义数组str void sort(string s[]); \/\/定义函数sort cout<<"Please input string:"<<endl; \/\/输出Please input string:for(i=0;i<=5;i++)cin>>str[i]; \/\/输入5个字符串 sort(str); \/\/调用str函数 cout<<"The sorted string is:"<<...

C++ 输入5个字符串,按英文字典顺序,由小到大顺序输出
include <string> include <vector> include <algorithm> include <iterator> using namespace std;int main(){ vector<string> vs;string s;for (int i = 0; i < 5; i++) cin >> s, vs.push_back(s);sort(vs.begin(), vs.end());copy(vs.begin(), vs.end(), ostream_iterator...

c++谭浩强第二版课后题答案
16.有5个字符串,要求将它们按由小到大的顺序排列,用string方法。 【解】 可以编写出以下程序:#include <iostream>#include <string>using namespace std;int main( ){ int i; string str[5]={" BASIC"," C"," FORTRAN"," C++","PASCAL"}; void sort(string [ ]); sort(str); \/\/对字符串排序...

输入5个字符串,输出其中最大的字符串。
strcpy(max,str)完成字符串拷贝,strcmp完成字符串比较,只要保留一个for循环,用一个strcmp就解决问题。strcmp(str1,str2):str1>str2时strcmp()>0,str1=str2时strcmp()=0,str1<str2时strcmp()<0 include <string.h> include <stdio.h> include <stdlib.h> int main(void){ char str[80]...

相似回答