定义包含5个英文单词的字符数组(即二维字符数组),键盘输入五个单词,按字典顺序寻找最大和最小单词并输出。
代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
char str[5][40]={0};
char tmp[40];
int i,j;
for (i=0;i<5;i++)
{
gets(str[i]);
}
//排序
for (i=0;i<4;i++)
{
for(j=0;j<4-i;j++)
{
if(strcmp(str[j],str[j+1]) > 0)
{
memset(tmp,0,40);
memcpy(tmp,str[j],strlen(str[j]));
memset(str[j],0,40);
memcpy(str[j],str[j+1],strlen(str[j+1]));
memset(str[j+1],0,40);
memcpy(str[j+1],tmp,strlen(tmp));
}
}
}
//输出
printf("最大:%s\n",str[4]);
printf("最小:%s\n",str[0]);
return 0;
}
你题目的解答代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
char s[5][100],*max,*min;
int i;
for (i=0;i<5;i++)
{
scanf("%s", s[i]);
}
max = min = s[0];
for (i=1;i<5;i++)
{
if(strcmp(max,s[i]) < 0)
max = s[i];
if(strcmp(min,s[i]) > 0)
min = s[i];
}
printf("最大单词:%s\n",max);
printf("最小单词:%s\n",min);
return 0;
}
如有帮助,望采纳!谢谢!
用冒泡排序,strcmp进行字符串大小比较