7-1 英文单词排序 (25分) 本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。

#include
#include
int main(void){
	char a[21][11] = {'\0'};
	char b[11] = {'\0'};//这是对数组的初始化。
	int i = 0;
	while(1)//while语句当表达式为非0值时会执行,而1是一个常量表达式,所以循环会一直进行
	{
		scanf("%s",&a[i]);
		if(a[i][0] == '#') 
			break;//设置类似break的跳出循环语句,才能使完成输入后循环结束 
		i++;
    }
    a[i][0] = '\0';
    int l = i;//英文单词的数量就知道了 
    int j = 0;
    for(i = 0; i < l; i++){
    	for(j = 1; j < l - i; j++){
    		if(strlen(a[j - 1]) > strlen(a[j])){
    			strcpy(b,a[j - 1]);//strcpy(s1,s2)函数就是将字符串s2赋到s1中,连同字符串结束标
				 strcpy(a[j - 1],a[j]);
				 strcpy(a[j],b); 
			}
		}
	}//排序工作完成啦!
	for(i = 0; i < l; i++){
		printf("%s ",a[i]);
	} 
	return 0;
}

 

你可能感兴趣的:(PTA)