| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1401 人关注过本帖
标题:作业出了点问题,求教
只看楼主 加入收藏
匆匆来过
Rank: 1
来 自:广州
等 级:新手上路
帖 子:26
专家分:9
注 册:2015-12-27
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:8 
作业出了点问题,求教
输入一局英语要输出最长的单词,怎么呢改?急,谢谢!
#include<stdio.h>
#include<string.h>
#define M 100
int main()
{
 void longest(char a[]);  
 char sen[M];
 printf("please input a sentence:\n");
 gets(sen);
 printf("the longest word is:\n");
 longest(sen);
 return 0;
}
 


void longest(char a[])//输出最长单词函数
{
 int len=0,length=0,i,j,place;
 for(i=0;a[i]!='\0';i++)
 {  j=i;
    place=j;
    for(i=j;a[i]!=' '||a[i]=='\0';i++)
    {  
       if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
       len++;
    }
    if(len>=length)
    {
     length=len;
     len=0;
    }
 }
 for(i=place;a[i]!=' '||a[i]=='\0';i++)
     printf("%c",a[i]);
 printf("\n");
}
2015-12-27 15:04
码程小伙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:81
注 册:2015-12-11
收藏
得分:4 
楼主的place好像一直都是保存最后一个单词的地方呀
2015-12-27 18:23
匆匆来过
Rank: 1
来 自:广州
等 级:新手上路
帖 子:26
专家分:9
注 册:2015-12-27
收藏
得分:0 
回复 2楼 zlz66668888
最近头都大了,大概要怎么改呢?

努力打代码
2015-12-27 20:31
匆匆来过
Rank: 1
来 自:广州
等 级:新手上路
帖 子:26
专家分:9
注 册:2015-12-27
收藏
得分:0 
回复 3楼 码程小伙
我也知道有问题啊,我随便放上去的

努力打代码
2015-12-27 21:08
ms268el8
Rank: 4
等 级:业余侠客
威 望:1
帖 子:84
专家分:299
注 册:2015-11-30
收藏
得分:10 
void longest(char a[])//输出最长单词函数
{
int len=0,length=0,i,j=0,place=0;
for(i=0;a[i]!='\0';i++)
{  
    j=i;
    for(;a[i]!=' '&&a[i]!='\0';i++)
    {  
       if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
       len++;
    }
    if(len>=length)
    {
     length=len;
     place=j;
     len=0;
    }
}
for(i=place;a[i]!=' '&&a[i]!='\0';i++)
     printf("%c",a[i]);
printf("\n");
}

測試了一下,好像行了
我改了a[i]!=' '||a[i]=='\0'判別式和place=j;的位置

[此贴子已经被作者于2015-12-27 22:07编辑过]

2015-12-27 22:03
匆匆来过
Rank: 1
来 自:广州
等 级:新手上路
帖 子:26
专家分:9
注 册:2015-12-27
收藏
得分:0 
回复 6楼 ms268el8
行了,行了,有点小激动谢谢指点

努力打代码
2015-12-27 22:20
码程小伙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:81
注 册:2015-12-11
收藏
得分:0 
你的len=0放在if里面好像不行吧。。。。。。。
2015-12-27 22:26
码程小伙
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:81
注 册:2015-12-11
收藏
得分:0 
我是这样写的
#include<stdio.h>
#include<string.h>
#define M 100
int main()
{
    void longest(char a[]);
    char sen[M]= {0};
    printf("please input a sentence:\n");
    gets(sen);
    printf("the longest word is:\n");
    longest(sen);
    return 0;
}

void longest(char a[])//输出最长单词函数
{
    int len=0,length=0,i,j=0,place=0;
    for(i=0; a[i]!='\0'; i++)
    {
        j=i;
        for(; a[i]!=' '&&a[i]!='\0'; i++)
        {
            if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
                len++;
        }
        if(len>=length)
        {
            length=len;
            place=j;
        }
        len=0;
    }
    i=place;
    while(a[i]!=' '&&a[i]!='\n')
    {
        printf("%c",a[i]);
        i++;
    }
    printf("\n");
}
2015-12-27 22:27
ms268el8
Rank: 4
等 级:业余侠客
威 望:1
帖 子:84
专家分:299
注 册:2015-11-30
收藏
得分:0 
回复 8楼 码程小伙
你說的對,我看漏眼了
2015-12-27 22:56
快速回复:作业出了点问题,求教
数据加载中...
 
   



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

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