| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 672 人关注过本帖
标题:书也会误导人
只看楼主 加入收藏
yuyangtian1000
该用户已被删除
收藏
 问题点数:0 回复次数:2 
书也会误导人
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: 误导 
2008-09-20 14:06
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
if (!isspace(c) && !x) x=true;

这么写,是为了只修改x一次。C语言是短路操作,如果发现c不为空,再去看x是不是假。如果c不为空且x是假(即x没有被赋值过),就赋值x为真。

整个程序接受一个以S结尾的串,判断它之前是不是有个非空字符,最后返回S之前的字符数。不过为什么x没有使用呢……

建议给x取个有意义的名字,比如下面的程序:
程序代码:
#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
#define S '|'
int main(void)
{
    char c;
    int n = 1;
    bool has_word = false;
    while ((c = getchar()) != S)
    {
        if (!isspace(c) && !has_word) /*x为假,!x为真*/
            has_word = true;
        n++;
    }
    printf("%d", n);
    return 0;
}


专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-20 14:57
yuyangtian1000
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-09-20 15:19
快速回复:书也会误导人
数据加载中...
 
   



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

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