Problem Description
编写程序找出一组单词中“最小”单词和“最大”单词。输入单词后,程序根据字典顺序决定排在最前面和最后面的单词。当输入4个字母的单词时,程序停止读入。
假设所有的单词都不超过20个字母。
Input Description
每行输入一个单词。
Output Description
第一行输出“最小”单词。
第二行输出“最大”单词。
Sample Input
dog
zebra
rabbit
catfish
walrus
cat
fish
Sample Output
cat
zebra
答案:
1.
#include <stdio.h>
#include <string.h>
int main()
{
int n;
char a[20][20];
char min[20], max[20];
for(n = 0; ;n++)
{
scanf("%s", &a[n]);
if(strlen(a[n]) == 4)
break;
}
strcpy(min, a[0]);
strcpy(max, a[0]);
for(int i = 0; i < n; i++)
{
if(strcmp(a[i], min) < 0)
strcpy(min, a[i]);
if(strcmp(a[i], max) > 0)
strcpy(max, a[i]);
}
printf("%s\n", min);
printf("%s", max);
return 0;
}
2.
#include<stdio.h>
#include<string.h>
int main(){
int i;
char p[20][10],smallest_word[10],largest_word[10];
while(strlen(gets(p[i++]))!=4);//读入用户输入的单词存放在字符数组中,当输入四个字母的单词,停止读入
for(i=0,strcpy(smallest_word,p[i]);;i++)
{
if(strcmp(p[i],smallest_word)<0)
strcpy(smallest_word,p[i]);//寻找"最小"的单词,存放在数组smallest_word中
if(strcmp(p[i],largest_word)>0)
strcpy(largest_word,p[i]);//寻找"最大"的单词,存放在数组largest_word中
if(strlen(p[i])==4)
break;//当遇到四个字母的单词结束寻找
}
puts(smallest_word);
puts(largest_word);
return 0;
}
答案:
1.
#include <stdio.h>
#include <string.h>
int main()
{
int n;
char a[20][20];
char min[20], max[20];
for(n = 0; ;n++)
{
scanf("%s", &a[n]);
if(strlen(a[n]) == 4)
break;
}
strcpy(min, a[0]);
strcpy(max, a[0]);
for(int i = 0; i < n; i++)
{
if(strcmp(a[i], min) < 0)
strcpy(min, a[i]);
if(strcmp(a[i], max) > 0)
strcpy(max, a[i]);
}
printf("%s\n", min);
printf("%s", max);
return 0;
}
2.
#include<stdio.h>
#include<string.h>
int main(){
int i;
char p[20][10],smallest_word[10],largest_word[10];
while(strlen(gets(p[i++]))!=4);//读入用户输入的单词存放在字符数组中,当输入四个字母的单词,停止读入
for(i=0,strcpy(smallest_word,p[i]);;i++)
{
if(strcmp(p[i],smallest_word)<0)
strcpy(smallest_word,p[i]);//寻找"最小"的单词,存放在数组smallest_word中
if(strcmp(p[i],largest_word)>0)
strcpy(largest_word,p[i]);//寻找"最大"的单词,存放在数组largest_word中
if(strlen(p[i])==4)
break;//当遇到四个字母的单词结束寻找
}
puts(smallest_word);
puts(largest_word);
return 0;
}