33,311
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#include<string.h>
#pragma warning (disable:4996)
#define MAX_WORDS 20
char* smallest_word(char[],char[]);
char* largest_word(char[],char[]);
int main()
{
char word[20],word_max[20],word_min[20];
for (;;) {
printf("Enter a word:");
gets(word);
if (strlen(word) == 4)
break;
strcpy(word_min,smallest_word(word,word_min));
strcpy(word_max,largest_word(word,word_max));
}
printf("Smallest word: %s\n", word_min);
printf("Largest word: %s\n", word_max);
getchar();
getchar();
return 0;
}
char* smallest_word(char word[],char word_min[])
{
if (strcmp(word, word_min) <= 0)
strcpy(word_min, word);
return word_min;
}
char* largest_word(char word[],char word_max[])
{
if (strcmp(word, word_max) >= 0)
strcpy(word_max, word);
return word_max;
}
#include<stdio.h>
#include<string.h>
#pragma warning (disable:4996)
#define MAX_WORDS 20
char* smallest_word(char[],char[]);
char* largest_word(char[],char[]);
int main()
{
char word[20],word_max[20] = {0}, word_min[20] = {0};
for (;;) {
printf("Enter a word:");
gets(word);
if (strlen(word_min) == 0)
strcpy(word_min, word);
if (strlen(word) == 4)
break;
strcpy(word_min,smallest_word(word,word_min));
strcpy(word_max,largest_word(word,word_max));
}
printf("Smallest word: %s\n", word_min);
printf("Largest word: %s\n", word_max);
getchar();
getchar();
return 0;
}
char* smallest_word(char word[],char word_min[])
{
if (strcmp(word, word_min) <= 0)
strcpy(word_min, word);
return word_min;
}
char* largest_word(char word[],char word_max[])
{
if (strcmp(word, word_max) >= 0)
strcpy(word_max, word);
return word_max;
}
首先word_min和word_word数组里的元素都是随机字符,不是字符串,那么怎么可以调用strcmp比较呢。比较的两个参数都需要是字符串,那么这两个并不是字符串;
所以,一个可以,一个不可以这只能说明随机字符得到随机的结果;
如果只是初始化word_min,word_max为空串还是不行的,因为word_min空串和任意串相比较都是最小的。所以,还需要将word_min初始化,那么把输入的第一个字符串赋值给word_min是可以的。