本题要求编写程序,针对输入的N个字符串,输出其中最小的字符串。
输入格式:
输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。
输出格式:
在一行中用以下格式输出最小的字符串:
Min is: 最小字符串
输入样例:
5
Li
Wang
Zha
Jin
Xian
结尾无空行
输出样例:
Min is: Jin
结尾无空行
代码:
#include<stdio.h>
#include<string.h>
char str[1000],str_min[1000];
int judge(char s1[],char s2[]);
int main()
{
int n;
scanf("%d%s",&n,str_min);
for(int i=2;i<=n;i++)
{
scanf("%s",str);
if(judge(str,str_min)==1)
{
memset(str_min,0,sizeof(str_min));
for(int j=0;j<strlen(str);j++) str_min[j]=str[j];
}
}
printf("Min is: %s\n",str_min);
return 0;
}
int judge(char s1[],char s2[])
{
int len1,len2,mlen;
len1=strlen(s1);
len2=strlen(s2);
mlen=len1>len2?len2:len1;
for(int i=0;i<mlen;i++)
{
if(s1[i]<s2[i]) return 1;
else if(s1[i]>s2[i]) return 2;
}
if(len1==len2) return 0;
return len1<len2?1:2;
}