avirl108 2015-06-06 08:43 采纳率: 62.5%
浏览 2013
已采纳

@C语言大神,这程序谭浩强给的答案看不懂,求解释?

//题目:输出字符串里数字团,以及个数。比如89cy129//就输出89,129,一共2个数。// 问题:后面一大段为啥要复制粘贴前面一大段的代码?//有什么用?求解释。而且运行也不对,求修改!跪谢!

include

int main()
{ char str[80],*pstr;
int m,i=0,j=0,k=0,digit=0,ndigit=0,e10,a[80],*pa; pstr=&str[0];pa=&a[0]; gets(str);while(*(pstr+i)!= '\0') { if((*(pstr+i)>='0')&&(*(pstr+i)<='9')) j++; else { if(j>0) { digit=*(pstr+i-1)-48; k=1; } if(k0) digit=(*(pstr+i-1)-48); k=1; if(k<j) { e10=1; for(m=1;m<=k;m++) e10=e10*10; digit=digit+*((pstr+i-1-k)-48)*e10; k++; pa=digit; ndigit++; pa++;//这里为什么要把第一段代码复制粘贴一次? j=0; //求解释! } pa=&a[0];printf("There are %d numbers:\n",ndigit);j=0;for(j=0;j<ndigit;j++) printf("%d,",(pa+j));printf("\n");}

  • 写回答

6条回答

  • threenewbee 2015-06-06 08:52
    关注
     #include "stdio.h"
    #include "stdlib.h"
    
    int main()
    {
        char s[] = "123ss456w7";
        int nShow = 1;
        for (int i = 0; i < (int)strlen(s); i++)
        {
            if (s[i] >= '0' && s[i] <= '9')
            {
                printf("%c", s[i]);
                nShow = 1;
            }
            else
            {
                if (nShow) printf("\n");
                nShow = 0;
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决