| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 783 人关注过本帖, 1 人收藏
标题:新手。为什么后面减 ‘0’ 就对,不减就错(第[09]行)
只看楼主 加入收藏
小和尚Ll
Rank: 1
来 自:辽宁的四川学生
等 级:新手上路
帖 子:11
专家分:2
注 册:2017-12-21
结帖率:50%
收藏(1)
已结贴  问题点数:10 回复次数:3 
新手。为什么后面减 ‘0’ 就对,不减就错(第[09]行)
这是题目:
输入一个包含数字字符的字符串,提取出这些数字字符,构成一个整数,然后将这个整数输出在屏幕上(注意:限定必须提取出来后,转换成整数,再以%d的形式输出该整数)。
注:测试数据保证每个串中只会出现一次整数,不会出现 abc35xy47这样有两段数字的输入。
例如:输入:abc350pt
      输出:350

我的代码:
[01] #include <stdio.h>
[02] int main(void) {
[03]    char s[100];
[04]    gets(s);
[05]    int i=0;
[06]    int num=0;
[07]    while(s[i]!='\0'){
[08]        if(s[i]>='0'&&s[i]<='9')
[09]        num=num*10+s[i]-'0';
[10]        i++;
    }
    printf("%d\n",num);
    return 0;
}
搜索更多相关主题的帖子: 输入 数字 整数 输出 num 
2017-12-22 11:35
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:5 
因为s[i]存的是字符,不是数字,‘0’也是字符,减去就变成数字了
2017-12-22 11:37
小和尚Ll
Rank: 1
来 自:辽宁的四川学生
等 级:新手上路
帖 子:11
专家分:2
注 册:2017-12-21
收藏
得分:0 
回复 2楼 grmmylbs
意思是,字符-字符=数字?

To be or not to be.
2017-12-23 10:07
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:5 
你理解错了,其实是ascii值在进行计算
2017-12-23 11:18
快速回复:新手。为什么后面减 ‘0’ 就对,不减就错(第[09]行)
数据加载中...
 
   



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

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