标题:为什么输出来是随机数字?请大家帮看看
只看楼主
yeyeyeyue
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2014-11-26
结帖率:50%
 问题点数:0 回复次数:8 
为什么输出来是随机数字?请大家帮看看
程序代码:
#include <stdio.h>  // 过滤掉所以非数字后换成十进制输出
int main()
{
    int i,number;
    char str[10];
    printf("Enter a string:\n");
    i=0;
    while((str[i]=getchar())!='\n')
        i++;
    str[i]='\0';

    for(i=0;str[i]!='\n';i++)
        if(str[i]>'0' && str[i]<'9')
            number=number*10+str[i]-'0';
        printf("digit=%d\n",number);
        return 0;
}
搜索更多相关主题的帖子: number 
2015-06-27 19:27
yeyeyeyue
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2014-11-26
得分:0 
哦, 我知道了,number 没有赋初值
2015-06-27 19:33
yeyeyeyue
Rank: 1
等 级:新手上路
帖 子:65
专家分:0
注 册:2014-11-26
得分:0 
以下是引用yeyeyeyue在2015-6-27 19:33:09的发言:

哦, 我知道了,number 没有赋初值




但是赋值以后输出的还是随机数
2015-06-27 19:36
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
得分:0 

#include <stdio.h>  // 过滤掉所以非数字后换成十进制输出
int main()
{
    int i,number;
    char str[10];
    printf("Enter a string:\n");
    i=0;
    while((str[i]=getchar())!='\n')
        i++;
    str[i]='\0';

    for(i=0;str[i]!='\n';i++)
        if(str[i]>'0' && str[i]<'9')
            number=number*10+str[i]-'0';
        printf("digit=%d\n",number);//问题出在这
        return 0;
}
2015-06-27 20:00
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
程序代码:
#include <stdio.h>  // 过滤掉所以非数字后换成十进制输出
int main()
{
    int i,number=0;
    char str[100];
    printf("Enter a string:\n");
    i=0;
    while((str[i]=getchar())!='\n')
        i++;
    str[i]='\0'; 
    for(i=0;str[i]!='\0';i++)
        if(str[i]>='0' && str[i]<='9'){ 
            number=number*10+str[i]-48;
        }
        printf("digit=%d\n",number);
        return 0;
}

剑栈风樯各苦辛,别时冰雪到时春
2015-06-27 20:03
风清云起
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2015-6-27
得分:0 
number = number * 10 + str[i] - '0' ;
number的类型是int型,而str[]是string类型,能一样吗???
2015-06-27 21:18
取名字
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:236
专家分:924
注 册:2015-4-27
得分:0 
number = number * 10 + str[i] - '0' ;
number的类型是int型,而str[]是string类型,能一样吗???
这里没关系。因为对于字符型数据,在计算机中是以ASCII码形式存储的,如字符‘A’,在计算中存储的是它的ASCII码41h,跟整型的存储一样,只不过字符型是用一个字节存储,所以在很多情况下,字符型和整型是可以混用的。
2015-06-27 21:33
xy165598994
Rank: 1
等 级:新手上路
帖 子:6
专家分:9
注 册:2015-6-28
得分:0 
for(i=0;str[i]!='\n';i++)
问题出在这
数组下标越界
2015-06-28 00:33
lmlm1001
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:4
帖 子:107
专家分:550
注 册:2015-3-1
得分:0 
i=0;
    while((str[i]=getchar())!='\n')
        i++;
    str[i]='\0';

你的程序里, str数组元素里不会有'\n'
2015-06-29 08:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-454785-1-1.html




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

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