编程-能帮我看看代码吗?我这代码怎么输出那么多个0?

问题描述

能帮我看看代码吗?我这代码怎么输出那么多个0?

输入一个字符串,内有数字和非数字字符,例如: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];
    gets(s);
    for(i=0;s[i]!='';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("%dn",k);
    for(m=0;m<k;m++)
        printf("%d ",b[m]);
    printf("n");
}

解决方案

现在i=0,
那么s[i]是字母,执行else,在else中,j=0,j--,则j=-1,执行b[k++] = x,则 b[0]=0
其他情况类似

解决方案二:

你可以是在扫描s数组时就开始组合整数
当'0'<=s[i]<='9'时进入一个循环,开始组装数据,直到字母或者字符串结尾

解决方案三:

从代码看应该是最后一个123的后面没空格或任何字符引起的没执行合成语句,在最后加一个空格或任何字符试看,把合成写为一个方法供调用,在退出循环后再调用一次合成即可。

时间: 2024-12-21 06:50:12

编程-能帮我看看代码吗?我这代码怎么输出那么多个0?的相关文章

各位能否帮我看一下这段Objective-C代码?

问题描述 各位能否帮我看一下这段Objective-C代码? 这是我在一本教程上面照搬下来的代码,一直编译不过去(OS X El Capitan Public Beta 5/ Xcode 7 beta 6),代码如下: #import typedef enum {circle,rectangle,egg} shapeType; typedef enum {red,green,blue} shapeColour; typedef struct {int x,y,width,height;} sha

编程算法:求1+2+...+n(模板类) 代码(C++)

题目: 求1+2+...+n, 要求不能使用乘除法\for\while\if\else\switch\case等关键字及条件判断语句(A?B:C). 可以使用模板类求解, 输入模板参数, 进行递归调用, 每次递归值减1, 至模板参数为1时, 显示调用结束模板类. 代码: /* * main.cpp * * Created on: 2014.7.12 *本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/

编程算法:求1+2+...+n(函数指针) 代码(C++)

题目: 求1+2+...+n, 要求不能使用乘除法\for\while\if\else\switch\case等关键字及条件判断语句(A?B:C). 可以使用函数指针求解, 通过递归调用, 每次递归值减1, 使用求反运算(!), 即非0为0, 0为1. 代码: /* * main.cpp * * Created on: 2014.7.12 *本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/ * Aut

java代码-望大神帮分析下,最好是把该代码的思路给分析讲解下,虽没有分但万分感谢!

问题描述 望大神帮分析下,最好是把该代码的思路给分析讲解下,虽没有分但万分感谢! import java.math.BigDecimal; public class NumToRMB { public static void main(String[] args) { System.out.println(changeToBig(Double.parseDouble(args[0]))); } public static String changeToBig(double value) { ch

ajax-求大神帮我看下为啥这段代码一直走error?

问题描述 求大神帮我看下为啥这段代码一直走error? 解决方案 跨域的服务器进行跨域支持了吗? 120.27.130.65这个服务器要支持你的跨域,才能使用jsonp,否则将不能回调到success函数. 跨域的本质是利用script,img等支持跨域的标签来对非同域名的链接来进行访问. 所以如果想要跨域成功,那么需要在调用方支持跨域. 我自己负责的很多项目跨域是自己写的实现,所以调用跨域的方法都得使用我封装的形式,否则默认是支持不了跨域的. jQuery的jsonp也一样,没有服务器是天然支

10年百度之星编程赛复赛题目(蜗牛)求答案代码

问题描述 10年百度之星编程赛复赛题目(蜗牛)求答案代码 ?一只蜗牛某天早晨掉进了深为L尺的井中.蜗牛每天白天可以向上爬若干尺,晚上休息时会向下滑若干尺.蜗牛一旦 到达井口或井底,便不再下滑.假设蜗牛每天向上爬的尺数均为不超过10的正整数,而下滑的尺数为不超过5的正整数.蜗牛在第N天白天里(含第N天白天结束时)爬出了井,你的任务是统计有多少种可能的爬升/下滑情况.对于两种爬升/下滑情况,当存在对应的白天上爬或者晚上下滑的尺数不同时,即视为不同的情况.输入格式第一行:井深L.其中L为正整数,且L<

求教大虾帮我解释下这串正则代码

问题描述 求教大虾帮我解释下这串正则代码 RegExp.quote = function (string) { return string.replace(/[-^$*+?.()|[]{}]/g, '$&'); }; 解决方案 1.[ -^$*+?.()|[]{} ],在[]是要匹配的特殊字符的集合: 2.对于String对象的replace方法,表达式不加入g,则只替换第一个匹配,如果加入g,则替换所有匹配: 3.$&;反斜杠应该是转义用的, 4.结合起来应该是把那里面的特殊字符转换成$

android-Android:求大神帮我详细讲解一下这段代码

问题描述 Android:求大神帮我详细讲解一下这段代码 private void clearPackagePreferredActivities(Context context String packageName) { PackageManager mPm = context.getPackageManager(); UserManager mUserManager = (UserManager)context.getSystemService(Context.USER_SERVICE);

简单cs结构-能不能帮我看一下下面两端小代码服务端怎么收不到数据啊?

问题描述 能不能帮我看一下下面两端小代码服务端怎么收不到数据啊? package chat; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; im