c语言:编写一个程序找出一组单词中的“最小“和“最大“的单词(单词在字典中的先后顺序,字典中先出现

c语言:编写一个程序找出一组单词中的“最小“和“最大“的单词(单词在字典中的先后顺序,字典中先出现的小)。当输入四个字母单词时,程序停止读入。。。。。。我这里已经写好了,有一个小问题,就是当我输入dog,zebra,rabbit,catfish,walrus,cat,fish.时,应该输出的正确答案是small cat,large zebra。但我输出的small 是我dog。
#include<stdio.h>
#include<string.h>
#define N 20
int main()
{
char smallest_word[N], largest_word[N], a[N], b[N];
int i, k;
printf("Enter word: ");
gets(b);
strcpy(smallest_word, b);
strcpy(largest_word, b);
k = strlen(b);

if (k == 4)
{
printf("Smallest word: ");
puts(smallest_word);
printf("Largest word: ");
puts(largest_word);
return 0;
}

else

{
for (;;)
{
printf("Enter word: ");
gets(a);
k = strlen(a);

if (k != 4)
{
if (strcmp(smallest_word, a) > 0)
strcpy(smallest_word, a);
if (strcmp(largest_word, a) < 0)
strcmp(largest_word, a);/*我觉得是这一步没有运行*/
}

else
{
printf("Smallest word: ");
puts(smallest_word);
printf("Largest_word ");
puts(largest_word);
return 0;
}

}
}
}
谢谢帮我检查下!

strcmp(largest_word, a);/*这一步没有运行*/

这一行写错了,不是应该strcpy么,不是strcmp。

#include<stdio.h>

#include<string.h>

int main()

{

char ch[5][10];

char min[10],max[10];

int i;

for(i=0;i<5;i++)

{

gets(ch[i]);

 }

strcpy(min,ch[0]);

strcpy(max,ch[0]);

for(i=1;i<5;i++)

{

if(strcmp(max,ch[i])<=0)

扩展资料

C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。

相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。

而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c)

合理使用优先级可以极大简化表达式。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-29

strcmp(largest_word, a);/*这一步没有运行*/

这一行写错了,不是应该strcpy么,不是strcmp。

#include<stdio.h>

#include<string.h>

int main()

{

char ch[5][10];

char min[10],max[10];

int i;

for(i=0;i<5;i++)

{

gets(ch[i]);

 }

strcpy(min,ch[0]);

strcpy(max,ch[0]);

for(i=1;i<5;i++)

{

if(strcmp(max,ch[i])<=0)

扩展资料:

上面的定义可以拓展:只要两个元素属于 A×B×...×N 这个笛卡尔积,或曰可写成 T1=(a1, b1, ..., n1) 和 T2=(a2, b2, ..., n2) 的有序多元组形式,那么两者即可排序——从前往后。

回到英语单词的例子上来。单词可以说是在笛卡尔积 A×A×A×... 这个集合(其中集合 A 是二十六个英文字母的集合,注意组成笛卡尔积的这些集合不必彼此不同)上的多元组,那么在字典中排列单词的顺序就是这里说的字典序——这也就是“字典序”这个名称的由来。

参考资料来源:

本回答被网友采纳
第2个回答  2013-12-18
strcmp(largest_word, a);/*我觉得是这一步没有运行*/

你这一行写错了吧,不是应该strcpy么,怎么还是strcmp呢?追问

呵呵,是我傻了,我竟然检查一晚上没有查出。。。。

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网