Blue_Zx 2024-10-16 16:37 采纳率: 68.2%
浏览 3

我想实现输入一串字符然后提取其中的数字,请问代码是出了什么问题吗(关键词-#include)

我想实现输入一串字符然后提取其中的数字,但是为什么运行后是这个结果,请问代码是出了什么问题吗?

img

#include <stdio.h>
int main()
{
    char ch;
    int n;
    printf("Please input an integer number:");
    ch = getchar();
    while (ch < '0' || ch > '9')
    {
        ch = getchar();
    }
    n = 0;
    while (ch >= '0' && ch <= '9')
    {
        n = n * 10 + (ch - '0');
        ch = getchar();
    }
    printf("%d", n);
    return 0;
}



  • 写回答

1条回答 默认 最新

  • 叫兽-郭老师 新星创作者: Java技术领域 2024-10-16 16:45
    关注

    img

    
    #include <stdio.h>
    
    int main() {
        char ch;
        int n = 0;
        int foundNumber = 0;
        int firstNumber = 1;
    
        printf("Please enter a string: ");
    
        while ((ch = getchar())!= '\n') {
            if (ch >= '0' && ch <= '9') {
                foundNumber = 1;
                n = n * 10 + (ch - '0');
            } else {
                if (n > 0) {
                    if (!firstNumber) {
                        printf(" ");
                    }
                    printf("%d", n);
                    firstNumber = 0;
                    n = 0;
                }
            }
        }
    
        if (n > 0) {
            if (!firstNumber) {
                printf(" ");
            }
            printf("%d", n);
        }
    
        if (!foundNumber) {
            printf("No number found in the input.");
        }
    
        return 0;
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 10月16日