C语言题目:提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。

描述提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。输入一个以回车符为结束标志的字符串(少于80个字符)。输出把字符串中的所有数字字符(‘0’... 描述

提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。

输入

一个以回车符为结束标志的字符串(少于80个字符)。

输出

把字符串中的所有数字字符(‘0’...‘9’)转换为一个整数并输出。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char s[300];
int i;
gets(s);
for(i=0;s[i]!='\0';i++)
{
if(s[i]<='9'&&s[i]>='0')
{
printf("%c",s[i]);
}
}
printf("\n");
return 0;
}
怎么有的测试用例不通过?
展开
 我来答
百度网友0ecab4f
2014-12-14 · TA获得超过1028个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:379万
展开全部
评测·系统显示的是wrong answer吗?如果是PE,请修改输出格式。
这里我指出一种情况,就是比如我输入a0123a 这组字符串,那按照题目的要求应该输出的是123,而你输出的肯定是0123。我不知道这是不是你不通过的测试用例,我也没有你测试平台的地址,没办法验证,就当是我给你一点建议吧。
追问
对的,应该是这样!那该怎么去改啊?
追答

问题都已经给你指出来了,改还不会么?况且就算是写出来了,那我也没有测试地址,我怎么给你测试啊?

说说思路吧,其实就是对第一个输出进行判断啊,从得到的第一个不为0的数字开始输出。然后还要注意全是0的情况,那最后一定要输出一个0。 要是还不懂就再追问吧。我写了一个,不敢保证一定能AC,你试试看吧。

#include <stdio.h>

#include <stdlib.h>

int main()

{

    char s[300];int flag=0;

    int i;

    gets(s);

    for(i=0;s[i]!='\0';i++)

    {

        if(s[i]<='9'&&s[i]>'0')

        {

            flag=1;

            for(int j=i;s[j]!='\0';j++)

            {
                    if(s[j]<='9'&&s[j]>='0')

                    printf("%c",s[j]);

            }

            break;

        }

    }

    if(flag==0)

    {

               printf("0");

    }

    printf("\n");

    return 0;

}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式