| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 722 人关注过本帖
标题:进来小看一眼,这个bug实在是....谢了
只看楼主 加入收藏
tianqiao
Rank: 2
等 级:论坛游民
帖 子:80
专家分:55
注 册:2011-9-21
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:8 
进来小看一眼,这个bug实在是....谢了
先说题目:
输入一串字符找到最短的字符并输出,并且如果最短字符有多个,只输出第一个;
上代码:
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    char a[100];
    int d[100],i,j,k,h,u,zhi=0,flag=0,min=1000,b[50],gg,zhen;
    gets(a);
    u=strlen(a);
    b[0]=0;
    for(i=0,k=0;i<u;i++){
        if(a[i]!=' '){
            flag++;
            d[k]=flag;
        }
        else if(a[i]==' '){
            k++;
            b[k]=flag+1;
            flag=0;
        }
    }
   

    for(j=0;j<k;j++){
        if(min>d[j])
        {min=d[j];h=b[j];}
    }
    for(gg=h;gg<min+h;gg++){
        printf("%c",a[gg]);
    }
    printf("\n");
    printf("%d %d %d",min,h,k);
    return 0;
}
    
问题来了,输入happy new year
             i love you
都没有问题,就是输入who am i时输出的居然是am!!!!!!
这道题已经AC了,但是没有意义,求指导,,,,
搜索更多相关主题的帖子: color 
2011-12-09 12:38
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:14 
回复 楼主 tianqiao
elseif(a[i]==''){            k++;            b[k]=flag+1;            flag=0;        }    }
这句k++是不是应该放在b[k]=flag+1;的后面?

总有那身价贱的人给作业贴回复完整的代码
2011-12-09 13:16
tianqiao
Rank: 2
等 级:论坛游民
帖 子:80
专家分:55
注 册:2011-9-21
收藏
得分:0 
回复 2楼 embed_xuel
额...这样还是不行
2011-12-09 13:21
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 3楼 tianqiao
加点注释

总有那身价贱的人给作业贴回复完整的代码
2011-12-09 14:01
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 3楼 tianqiao
只加一句话就行了,
在for(j=0;j<k;j++){这句前面加上k++;

2楼做废

[ 本帖最后由 embed_xuel 于 2011-12-9 14:14 编辑 ]

总有那身价贱的人给作业贴回复完整的代码
2011-12-09 14:09
tianqiao
Rank: 2
等 级:论坛游民
帖 子:80
专家分:55
注 册:2011-9-21
收藏
得分:0 
回复 5楼 embed_xuel
输入who am i还是不行,等下我把注释贴上
2011-12-09 18:36
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 6楼 tianqiao
把你改完的代码贴上来

总有那身价贱的人给作业贴回复完整的代码
2011-12-09 20:01
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:0 
#include<stdio.h>
 #include<string.h>
 int main(void)
 {
     char a[100];
     int d[100],i,j,k,h,u,flag=0,min,b[50],gg,c[100];
     printf("输入要处理的字符串:");
     gets(a);
     u=strlen(a);
     for(i=0,k=0;i<u;i++)
     {
         if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
         {
             flag++;
             d[k]=flag;
         }
         else
         {
             b[k]=i;
             c[k]=b[k]-flag;
             k++;
             flag=0;
         }
     }if(i==u) {b[k]=i;c[k]=b[k]-flag;}
   
    min=d[0];
    for(j=0;j<k+1;j++)
    {
         if(min>d[j])
          { min=d[j];h=j;}
    }
    if(min==d[0]) h=0;
    printf("最短单词为:");
     for(gg=c[h];gg<b[h];gg++)
     printf("%c",a[gg]);
     printf("\n");  
     return 0;
 }
 

最基础的往往是你最容易忽略的!
2011-12-10 11:40
tianqiao
Rank: 2
等 级:论坛游民
帖 子:80
专家分:55
注 册:2011-9-21
收藏
得分:0 
谢谢
2011-12-10 12:21
快速回复:进来小看一眼,这个bug实在是....谢了
数据加载中...
 
   



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

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