注册 登录
编程论坛 C语言论坛

为什么我这个输出是一堆无关紧要的数字啊

joymessi 发布于 2020-04-14 16:20, 1692 次点击
这是问题 :输入一行字母数字混合的字符,以‘#’号键结束。去除掉是
字母的字符(大小写均去除),将剩余的数字组成一个整数输出。
我感觉我的代码没错啊

#include <stdio.h>
#include <conio.h>
int main(void)
{
    char ch;
    int m=0,t=0;
    printf("input the charactor:");
    while((ch=getchar())!='\n')
    {
        if(ch >='0' && ch<='9')
        {
            t=ch;
        }
        else
        {
            t=0;
        }
        m=m*10+t;
    }
        printf("%ld\n",m);
   
    getch();
    return 0;
}
7 回复
#2
rjsp2020-04-14 16:22
t=ch;
应该是
 t=ch–'0';
#3
rjsp2020-04-14 16:24
你的算法也不对,当字母时不需要舔0
#4
纯蓝之刃2020-04-14 16:24
t=ch-'0';

一个是数字,一个是数字的ASCLL码值,需要转换下
#5
joymessi2020-04-14 16:30
回复 3楼 rjsp
蛤  可以说的详细一点吗 我没太看懂你的意思
#6
joymessi2020-04-14 16:32
回复 4楼 纯蓝之刃
谢谢 好像是的
#7
joymessi2020-04-14 16:32
回复 2楼 rjsp
对的  谢谢了
#8
lin51616782020-04-14 16:49
转换成int的操作是多余的
if(是数字)
putchar
完事
1