| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3099 人关注过本帖
标题:一个编译过程中的问题
只看楼主 加入收藏
burninghc
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-7-28
收藏
 问题点数:0 回复次数:13 
一个编译过程中的问题
#include<stdio.h>#include<Windows.h>#define OUT 0#define IN 1int main(){    int c, state,t,i;    int nl[100];    for(i=0;i<=99;i++)    {            nl[i]=0;    }    t = i = 0;    state=OUT;    while((c=getchar())!=EOF)    {        if(c != ' '||c!= '\n'||c!= '\t')     \*在这个地方不知道为什么就判断不了?*\        {            state=IN;            ++t;        }        else if(state==IN)        {                state=OUT;            nl[i]=t;            ++i;            t=0;        }    }    for(i==0;i<=99;++i)    {            printf("%d: ",i+1);        for(nl[i]>=1;nl[i]<=100;--nl[i])        {                printf("*");            if(nl[i]==0)                printf("\n");        }    }}有大神能帮我看看嘛
搜索更多相关主题的帖子: include 
2016-07-28 19:26
平常心q
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:120
专家分:550
注 册:2016-3-31
收藏
得分:0 
#include<stdio.h>
#include<Windows.h>
#define OUT 0
#define IN 1
int main()
{   
    int c, state,t,i;   
    int nl[100];   
    for(i=0;i<=99;i++)   
    {            
        nl[i]=0;   
    }   
    t = i = 0;   
    state=OUT;   
    while((c=getchar())==EOF)   
    {      
        if(c != ' '||c!= '\n'||c!= '\t')     //在这个地方不知道为什么就判断不了        
        {           
            state=IN;           
            ++t;      
        }        
        else if(state==IN)      
        {               
            state=OUT;            
            nl[i]=t;            
            ++i;            
            t=0;        
        }  
    }   
    for(i==0;i<=99;++i)   
    {            
        printf("%d: ",i+1);        
        for(i>=1;i<=100;--i)      你代码中这句是死循环
        {               
            printf("*");            
            if(nl[i]==0)               
                printf("\n");      
        }   
    }

    return 0;
}

2016-07-28 19:59
burninghc
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-7-28
收藏
得分:0 
回复 2楼 平常心q
可是你这样改动就达不到我的目的了吧?而且我的代码在调试的时候发现那个if那里就是判断不了的
2016-07-28 20:33
zhangqiwhut
Rank: 2
等 级:论坛游民
帖 子:7
专家分:25
注 册:2015-3-20
收藏
得分:0 
回复 楼主 burninghc
把while((c=getchar())==EOF)   改为while((c=getchar())!=EOF)  试试,你之前那样判断,输入之后都不能进入循环  
2016-07-28 21:43
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
if(c != ' '||c!= '\n'||c!= '\t')这里要改成英文单引号
算法错误的地方你自己改吧。
2016-07-28 22:01
burninghc
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-7-28
收藏
得分:0 
回复 4楼 zhangqiwhut
我发的原代码里就是不等于呀
2016-07-29 00:25
burninghc
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2016-7-28
收藏
得分:0 
回复 5楼 linlulu001
我的就是英文的单引号,生成是成功了的,算法那部分还没改,因为这一部分都过不了,好奇怪,这行代码应该是没错的
2016-07-29 00:30
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
if(c != ' '||c!= '\n'||c!= '\t')不是不执行,而是只执行这句,不执行else。
k=c != ' '||c!= '\n'||c!= '\t'看看k的值就知道了
if(c != ' '||c!= '\n'||c!= '\t')改成if(!isspace(c))就行了。
2016-07-29 07:25
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
第一眼就觉得好乱。。这习惯要改
2016-07-29 08:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
连题目要求都不肯贴或懒得贴,只能无聊瞎猜了
程序代码:
#include <stdio.h>

int main( void )
{
    int nl[100];
    int nl_cnt = 0;

    for( int c, ws=1; c=getchar(), c!=EOF; )
    {
        if( c!=' ' && c!='\n' && c!='\t' && c!='\r' && c!='\v' && c!='\f' ) // 可以用if( !isspace(c) )
        {
            if( ws ) // 如果前一个字符是空白字符
            {
                nl[nl_cnt++] = 0;
                ws = 0;
            }
            ++nl[nl_cnt-1];
        }
        else
            ws = 1;
    }

    for( int i=0; i!=nl_cnt; ++i )
    {
        printf( "%d: ", i+1 );
        for( int j=0; j!=nl[i]; ++j )
            putchar( '*' );
        putchar( '\n' );
    }

    return 0;
}

2016-07-29 08:56
快速回复:一个编译过程中的问题
数据加载中...
 
   



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

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