标题:帮帮忙,看下面这个程序
取消只看楼主
shiningwater
Rank: 1
等 级:新手上路
帖 子:51
专家分:5
注 册:2010-3-25
结帖率:93.75%
已结贴  问题点数:10 回复次数:5 
帮帮忙,看下面这个程序
作用是输出一个字符串中最长的单词。

#include<stdio.h>
void main()
{
  void word(char a[]);
  char str[20];
  printf("input a string:\n");
  gets(str);
  word(str);
}

void word(char a[20])
{
  int i,p=0,q=0,k=0;
  for(i=0;a[i]!=' ';i++)
  p++;
  for(i=0;a[i]!='\0';i++)
  {
    if(a[i]==' ')
    {
       if(q>p)
       {
         p=q;
         k=i-p;
       }

       q=0;

     }

     else q++;

  }

  for(i=k;i<=p;i++)
   printf("%c",a[i]);

}


我是想让p始终存放当前最长单词的长度,q存放当前单词的长度。但是结果不对
搜索更多相关主题的帖子: 字符串 word 
2010-09-17 12:16
shiningwater
Rank: 1
等 级:新手上路
帖 子:51
专家分:5
注 册:2010-3-25
得分:0 
小改一下程序:但结果仍不对
#include<stdio.h>
void main()
{
  void word(char a[]);
  char str[20];
  printf("input a string:\n");
  gets(str);
  word(str);

  getch();

}

void word(char a[20])
{
  int i,p=0,q=0,k=0;
  for(i=0;a[i]!=' ';i++)
  p++;
  for(i=0;a[i]!='\0';i++)
  {
    if(a[i]==' ')
    {
       if(q>p)
       {
         p=q;
         k=i-p;
       }

       q=0;

     }

     else q++;

  }

  for(i=k;i<=p+k;i++)
   printf("%c",a[i]);

}
2010-09-17 12:22
shiningwater
Rank: 1
等 级:新手上路
帖 子:51
专家分:5
注 册:2010-3-25
得分:0 
额额~~楼上的麻烦说明确一点可以不,小的有点看不懂额
2010-09-17 13:35
shiningwater
Rank: 1
等 级:新手上路
帖 子:51
专家分:5
注 册:2010-3-25
得分:0 
顺便说一句,getch()是多余的。
2010-09-17 13:35
shiningwater
Rank: 1
等 级:新手上路
帖 子:51
专家分:5
注 册:2010-3-25
得分:0 
改好了,以下是正确程序。供大家看看


#include<stdio.h>
#include<string.h>
void main()
{
  void word(char a[]);
  char str[20];
  printf("input a string:\n");
  gets(str);
  word(str);

  getch();

}

void word(char a[20])
{
  int i,p=0,q=0,k=0;

  for(i=0;i<=strlen(a);i++)
  { if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z'))
       q++;
    else
    {
       if(q>p)
       {
         p=q;
         k=i-p;
       }

       q=0;

     }



  }

  for(i=k;i<=p+k;i++)
   printf("%c",a[i]);

}
2010-09-17 15:00
shiningwater
Rank: 1
等 级:新手上路
帖 子:51
专家分:5
注 册:2010-3-25
得分:0 
回复 11楼 自由战士89
呵呵。我也纠结了好半天,后来亲自举例跟着程序走一遍才知道哪里错了,建议你也可以这样做一下,呵呵
2010-09-19 13:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-320696-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.238171 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved