编程题:按字典顺序对字符串排序
输入10个单词: C C++ Java PHP Python Perl Ruby R JavaScript PHP
排序后: C C++ Java JavaScript PHP PHP Perl Python R Ruby
#include <stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #include <windows.h> #define N 10 int main(void) { char word[N][N],t[N];//用二维数组存储单词 printf("请输入%d个字符串\n",N); for (int i = 0; i < N; i++) { gets(word[i]); } for (int i = 0; i < N-1; i++) { for (int j = i+1; j < N; j++) { if (strcmp(word[i], word[j]) > 0) { strcpy(t,word[i]); strcpy(word[i], word[j]); strcpy(word[j], t); } } } puts("排序后"); for (int i = 0; i < N - 1; i++) { puts(word[i]); }
return 0; }
#include<iostream>
using namespace std;
int compare(char * string1,char * string2)
{
if(*string1==0 && *string2==0)
return 0;
}
if(*string1>*string2)
return 1;
if(*string1<*string2)
return -1;
return compare(string1+1,string2+1);
char ** inputForStringArray(int length)
char ** array=new char*[length];
char * p;
for(int i=0;i<length;i++)
p=new char[16];
cin>>p;
array[i]=p;
return array;
void traverseStringArray(char ** array,int length)
if(length==0)
return;
cout<<*array<<endl;
traverseStringArray(array+1,length-1);
void sort(char ** array,int length)
int index;
char * value;
for(int i=1;i<length;i++)
index=i;
value=array[i];
for(int j=i-1;j>=0;j--)
if(compare(value,array[j])==-1)
array[j+1]=array[j];
}else
index=j;
break;
if(index!=i)
array[index+1]=value;
int main()
char ** stringArray=inputForStringArray(10);
//traverseStringArray(stringArray,10);
sort(stringArray,10);
cout<<"--------------"<<endl;
traverseStringArray(stringArray,10);
#include<stdio...
用户登录可进行刷题及查看答案
#include<stdio.h> #include <string.h> int main() { int i, j; char str[10][50], temp[50]; printf("输入10个单词:\n"); for(i=0; i<10; ++i) { scanf("%s[^\n]",str[i]); } for(i=0; i<9; ++i) { for(j=i+1; j<10 ; ++j) { if(strcmp(str[i], str[j])>0) { strcpy(temp, str[i]); strcpy(str[i], str[j]); strcpy(str[j], temp); } } } printf("\n排序后: \n"); for(i=0; i<10; ++i) { puts(str[i]); } return 0; }
登录后提交答案