YXTS122 2015-11-22 10:41 采纳率: 100%
浏览 1571
已采纳

我这代码到底出什么问题了?

输入一个字符串,内有数字和非数字字符,例如:a123x456 7689?89njnk32lnk123,
将其中连续的数字作为一个整数,依次存放到一维数组a中,例如123放在b[0],456放
在b[1]......统计共有多少个整数,并输出这些数。弟1行输出个数,第2行输出多个整数
,用空格分隔。

 #include<stdio.h>
#include<math.h>
void main()
{
    int i,j=0,k=0,x=0,n,m,b[100];
    char s[100],a[100];
    scanf("%s",s);
    for(i=0;s[i]!='\0';i++)
    {
        if(s[i]>='0'&&s[i]<='9')
            a[j++]=s[i];
        else
        {
            j--;
            for(n=0;j>=0;j--,n++)
                x+=(a[j]-'0')*(int)pow(10,n);
            b[k++]=x;
            x=0;  j=0;
        }
    }
    printf("%d\n",k);
    for(m=0;m<k;m++)
        printf("%d ",b[m]);
    printf("\n");
}

图片说明

  • 写回答

1条回答 默认 最新

  • 石头 franky 2015-11-22 11:57
    关注

    scanf是以空格或回车结束的,所以你的字符串 s 中只有 a123x456 。你可以用 gets(s) 是以回车结束,得到字符串

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作