| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2236 人关注过本帖
标题:为什么其他字符永远都是零呢?请问哪错了?
只看楼主 加入收藏
无知的幸福
Rank: 1
等 级:新手上路
帖 子:5
专家分:7
注 册:2018-8-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
为什么其他字符永远都是零呢?请问哪错了?
//输入10个不同字符 ,统计其中英文字符、数字、空格或回车、其他字符个数四类;
#include<stdio.h>
int main(void)
{
    int digit,letter,kong,other;   //四个变量存储统计结果;
    char ch;
    int i;
    digit=letter=kong=other=0;    //初始值为零;
    printf("输入10个字符:");
    for(i=1;i<=10;i++)
    {
        ch=getchar();
        if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
        digit++;
        else if(ch>='0'&&ch<='9')
        letter++;
        else if(ch=' ')
        kong++;
        else
        other++;
    }   
    printf("digit=%d,letter=%d,kong=%d,other=%d\n",digit,letter,kong,other);
    return 0;
}
搜索更多相关主题的帖子: 其他 字符 int digit letter 
2018-08-15 22:06
康明贤
Rank: 2
来 自:NWPU
等 级:论坛游民
帖 子:46
专家分:32
注 册:2017-10-23
收藏
得分:10 
因为判断是不是空格那个应该用 两个等于号
#include<stdio.h>
int main(void)
{
    int digit,letter,kong,other;   //四个变量存储统计结果;
    char ch;
    int i;
    digit=letter=kong=other=0;    //初始值为零;
    printf("输入10个字符:");
    for(i=1;i<=10;i++)
    {
        ch=getchar();
        if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
        digit++;
        else if(ch>='0'&&ch<='9')
        letter++;
        else if(ch==' ')//!!!!!!!!!!!!!!!!!!!!!!!!!!
        kong++;
        else
        other++;
    }   
    printf("digit=%d,letter=%d,kong=%d,other=%d\n",digit,letter,kong,other);
    return 0;
}

千里之行,始于足下。
2018-08-15 22:33
无知的幸福
Rank: 1
等 级:新手上路
帖 子:5
专家分:7
注 册:2018-8-15
收藏
得分:0 
谢谢!程序没错了。不过我不明白空格的为什么要用两个=号,而其他的只要一个,有什么区别吗?
==(两个等于号)等于号;=(一个等于号)赋值。
2018-08-15 22:56
康明贤
Rank: 2
来 自:NWPU
等 级:论坛游民
帖 子:46
专家分:32
注 册:2017-10-23
收藏
得分:10 
回复 3楼 无知的幸福
如你所言 一个等号表示赋值。
而两个等号表示判断。
你所说的“其他需要一个等号”,指的是“>= <=”?
他俩也是判断符。

千里之行,始于足下。
2018-08-15 23:11
红柚
Rank: 4
来 自:咸鱼乡的酸菜鱼
等 级:贵宾
威 望:14
帖 子:53
专家分:218
注 册:2018-4-20
收藏
得分:0 
目前简单的有  + - * / % = 相当于我们的加减乘除和取余,单独的等号是用于把等式的右边赋值给左边的变量;
而 == != >= <= < >  则是用于判断,而不是赋值,两个等号就是为了跟赋值做区分,判断结果为布尔型,即true 或者 false。
一般if()语句里的条件是需要判断的,不会用赋值。

[此贴子已经被作者于2018-8-16 09:35编辑过]

2018-08-16 09:32
masterl
Rank: 2
等 级:论坛游民
威 望:1
帖 子:16
专家分:31
注 册:2017-10-12
收藏
得分:0 
'='为赋值,‘==’为逻辑判断。数值初始化尽量分开!
2018-08-18 18:14
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
一个= 执行后返回的是右表达式的值
两个=返回的是0或1(true or false)
2018-08-21 12:14
codeooo
Rank: 2
等 级:论坛游民
帖 子:25
专家分:15
注 册:2018-7-26
收藏
得分:0 
==  是表示逻辑上的等于关系  =是赋值
2018-08-21 22:08
快速回复:为什么其他字符永远都是零呢?请问哪错了?
数据加载中...
 
   



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

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