<pre name="code" class="cpp"><pre name="code" class="cpp">/*
写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:"abc123def123456eec123456789dd"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789。
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//自己写的  把每个数字串都存下来再判断   对于这道题的要求  略显麻烦了 但如果要输出每个数字串  可在这个基础上改改就出来了
int FindMax_NumStr(char *outputstr,char *inputstr)
{char *in = inputstr,*out = outputstr;int numcnt=0;//记录数字串数 一共有多少次  int *count=(int*)malloc(10*sizeof(int));//存数字串的长度char *temp[10];//存数字串的地址memset(count,0,10*sizeof(int));int max=0;//下标 记录最长数字串int i;int flag=0;//flag 0:字母 1:数字if(*in>='0'&&*in<='9')flag=1;count--;//记录每个数字串以及长度while(*in!='\0'){while(*in>='0'&&*in<='9'){if(flag==0){count++;temp[numcnt]=in;numcnt++;flag=1;}if(flag==1){(*count)++;}in++;}//字母:in++;flag=0;}//比较count[],求最长数字串count=(count-numcnt+1);max=numcnt-1;int tempnum=count[numcnt-1];for(i=0;i<numcnt-1;i++)if(count[i]>tempnum){max=i;tempnum=count[i];}/**(temp[max]+tempnum)='\0';outputstr=temp[max];*///保存最长数字串for(i=0;i<tempnum;i++){*out=*temp[max];out++;temp[max]++;}*out='\0';return tempnum;
}void main(void)
{char input[]="abc123def123456eec123456789dd";char output[10];int maxlen;maxlen = FindMax_NumStr(output,input);printf("the str is :%s\n",output);printf("the maxlen is :%d\n",maxlen);
}

//答案的 每次都先作比较 只保存一个最长数字串

int FindMax_NumStr(char *outputstr,char *inputstr)
{char *in = inputstr,*out = outputstr,*temp;char *final;int count = 0;int maxlen = 0;int i;while(*in!='\0'){if(*in > 47 && *in < 58){for(temp = in;*in> 47 && *in <58;in++)count++;}elsein++;if(maxlen < count){maxlen = count;count = 0;final = temp;}}for(i =0;i<maxlen;i++){*out = *final;out++;final++;}*out = '\0';return maxlen;
}
/*
求1000!的未尾有几个0;求出1->1000里,能被5整除的数的个数n1,能被25整除的数的个数n2,能被125整除的数的个数n3,能被625整除的数的个数n4.1000!末尾的零的个数=n1+n2+n3+n4;只要是末尾是5的数它乘以一个偶数就会出现一个0,而末尾是0的数乘以任何数也都会出现0
而末尾是0的如果是一个0肯定能被5整除,两个0肯定能被25整数,以此类推3个0就能被5的三次方整除,也就是1251000!就是1-1000数的相乘,能被5整除的所有数分别乘以一个偶数就会出现这些个的0,而例如100,既能被5整除,也能被25整除,所以就是两个01000,既能被5,25,也能被125整除,所以算三个0例如是10!=1*2*3*4*5*6*7*8*9*10,里面有两个数能被5整除,就是10和5,而
5随便乘以一个偶数就出现一个0,而10乘以其它数也会出现一个0,所以10!会有两个0
*///方法一:
#include<stdio.h>
#define NUM 1000void main()
{int n1=0,n2=0,n3=0,n4=0;for(int i=5;i<=NUM;i=i+5){if((i>=5)&&(i%5==0))n1++;if((i>=25)&&(i%25==0))n2++;if((i>=125)&&(i%125==0))n3++;if((i>=625)&&(i%625==0))n4++;}printf("%d\r\n",n1+n2+n3+n4);
}//方法二:递归
#include <stdio.h>
#define NUM 1000int find5(int num)
{int ret = 0;while(num%5==0){num/=5;ret++;}return ret;
}void main(void)
{int result = 0;int i;for(i=5;i<=NUM;i+=5)result +=find5(i);printf("the total zero number is %d\n",result);
}
/*
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。
*/
//dfggggsrer455555frtrrrtvvvwwwwwwf445t56
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define NUM 10
//类似第一道的方法  每次比较 存出现次数最多的字符
char *find(char *str)
{char finalch;//字符串字符char *final=(char*)malloc(NUM*sizeof(char));char ch;int i;int curcnt=0;int maxcnt=0;int flag=0;//第一个字符开始标志while(*str!='\0'){if(flag==0){ch=*str;curcnt++;flag=1;str++;}if(flag==1){while(*str==ch){curcnt++;str++;}flag=0;}if(curcnt>maxcnt){finalch=ch;maxcnt=curcnt;}curcnt=0;}for(i=0;i<maxcnt;i++){final[i]=finalch;}final[i]='\0';return final;
}void main()
{char str[]="dfggggsrer455555frtrrrtvvvwwwwwwf445t56";char *final;final=find(str);printf("最长子串为:%s\r\n",final);
}

面试的算法2(C语言)(整理)相关推荐

  1. 经典c语言基础代码大全,10个经典的C语言面试基础算法及代码

    <10个经典的C语言面试基础算法及代码>由会员分享,可在线阅读,更多相关<10个经典的C语言面试基础算法及代码(24页珍藏版)>请在人人文库网上搜索. 1.10个经典的C语言面 ...

  2. c语言从4个整数中找最小的数,编程之法:面试和算法心得(寻找最小的k个数)...

    内容全部来自编程之法:面试和算法心得一书,实现是自己写的使用的是java 题目描述 输入n个整数,输出其中最小的k个. 分析与解法 解法一 要求一个序列中最小的k个数,按照惯有的思维方式,则是先对这个 ...

  3. 程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦

    (七月在线:https://www.julyedu.com/,面试 & 算法 & 机器学习在线课程) 作者:July--结构之法算法之道blog之博主. 时间:2010年10月-201 ...

  4. java runtime ssh 后执行指令_酒后系列:被某厂面试官吊打后酒后整理的JVM干货

    为什么要写这么一篇文章呢,因为很基础,很基础,很基础,重要的事情说三遍!!!哼,还不是因为面试的时候经常会被问到,哈哈哈哈哈 ,为此我静下心来,狠心写下了这一篇文章,好去对付一般的面试官,也可以帮助你 ...

  5. 程序员面试、算法研究、编程艺术、红黑树、机器学习5大经典原创系列集锦与总结

    程序员面试.算法研究.编程艺术.红黑树.机器学习5大经典原创系列集锦与总结 (七月在线:https://www.julyedu.com/,面试 & 算法 & 机器学习在线课程) 作者: ...

  6. (转载)程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦

    作者:July–结构之法算法之道blog之博主. 时间:2010年10月-2018年5月,一直在不断更新中.. 出处:http://blog.csdn.net/v_JULY_v . 说明:本博客中部分 ...

  7. 神级:程序员面试、算法研究、编程艺术、红黑树、机器学习5大经典原创系列集锦与总结

    https://blog.csdn.net/v_JULY_v/article/details/6543438 https://blog.csdn.net/v_JULY_v/article/detail ...

  8. 【转自JULY大佬】程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦

    感谢原作者分享,转载自   https://blog.csdn.net/v_JULY_v/article/details/6543438 程序员面试.算法研究.编程艺术.红黑树.机器学习5大经典原创系 ...

  9. 程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大经典原创系列集锦与总结

    点击打开链接(具体详情 点击链接) 程序员面试.算法研究.编程艺术.红黑树.数据挖掘5大经典原创系列集锦与总结 (七月在线:点击打开链接,面试 & 算法 & 机器学习在线课程) 作者: ...

  10. 程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦(转)

    原文链接:https://blog.csdn.net/v_july_v/article/details/6543438 一.微软面试100题系列 横空出世,席卷Csdn--评微软等数据结构+算法面试1 ...

最新文章

  1. 【NLP】大模型时代,我们真的不再需要分词了吗?
  2. Vue第二章,在项目中使用element-ui组件
  3. Eclipse引入jar包步骤
  4. c语言中嵌套循环的作用,C语言中n层循环嵌套实现
  5. 医药/医疗/互联网医疗平台/问诊/挂号/开药/处方/复诊/患者管理/开药问诊/视频问诊/电话问诊/图文问诊/医生端/医师认证/医院/药品/续方/常用处方/电子处方/抢单/接诊/退诊/预约/科室/开方
  6. chap8_1 Render to texture in OGRE
  7. 深入浅出mysql_深入浅出mysql索引
  8. ubuntu安装微信
  9. labview 写入mysql_LabVIEW 连接MySQL数据库
  10. CentOS 编译运行 DPDK 19.11 流程
  11. 【数字信号调制】基于matlab实现AM调制系统附GUI界面
  12. C++证明哥德巴赫猜想
  13. 【解决】Outlook无法正常显示邮件中的图片
  14. 零基础学FPGA(六):FPGA时钟架构(Xilinx为例,完整解读)
  15. excel多元回归-系数参数解读
  16. proteus8单片机c语言仿真教程,入门学习Proteus 8仿真软件以及C51单片机的LED点亮(C语言)——实例...
  17. ethereumjs/ethereumjs-icap
  18. FPGA课程设计——数字电子时钟VERILOG(基于正点原子新起点开发板,支持8位或6位共阳极数码管显示时分秒毫秒,可校时,可设闹钟,闹钟开关,led指示)
  19. 泛型 super和extend
  20. [Oracle]In-Memory的Join Group 位于内存的何处?

热门文章

  1. 结构型模式之Bridge模式
  2. AlertDialog的使用(一)
  3. 题目1022:游船出租
  4. php学习之Model类
  5. 在学习中遇到的第一难点
  6. javascript笔记——点击按钮(或超链接)如何跳转到另外一个页面并执行目标页面的js函数...
  7. 遇见那个对的人,便是爱情
  8. mysql的grant权限
  9. leetcode算法题--两数相加 II
  10. ubuntu安装snort