C语言编程经典算法

作者: 小辰带你看世界 | 来源:发表于2018-02-22 13:20 被阅读20次

    C语言是面向过程的,而C++是面向对象的

    C和C++的区别:

    C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

    C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。

    C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。

    C语言作为多数工科学校编程入门的教学工具语言,是很多朋友开启编程世界大门的钥匙。今天,承接上一篇C语言经典算法(一),我继续给大家带来C语言经典算法,欢迎大家与小编多多交流。

    六、99乘法口诀表

    具体实现代码如下,算法关键在于使用两个for循环,外循环控制换行,内循环控制每一行的具体输出规则。

    小编推荐一个学C语言/C++的学习裙【 二六三,六八八,二七六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    程序运行结果如下

    七、寻找“水仙花数”

    所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。比如,407是一个“水仙花数”,因为407=4的三次方+0的三次方+7的三次方。这个算法的关键是提取三位数的每一位数。

    运行结果如下

    八、分解质因数

    比如,把60分解质因数,就是指把60拆解成 60=2x2x3x5的结构。

    代码如下,把168拆解质因数。

    main()

    {

    int exa=168,i;

    printf("%d=",exa);

    for(i=2;i<=exa;i++)

    {

    while(exa!=i)

    {

    if(exa%i==0)

    { printf("%d*",i);

    exa=exa/i;

    }

    else

    break;

    }

    }

    printf("%d",exa);

    printf(" ");

    }

    运行结果如下

    小编推荐一个学C语言/C++的学习裙【 二六三,六八八,二七六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    九、a和b最大公约数

    求解两个数a和b的最大公约数,也叫最大公因数,是指两个或多个整数共有约数中最大的一个,比如,12和4的最大公约数是4,32和12的最大公约数是4。求解两个数的最大公约数,比较常见的算法是碾转相除法。代码如下。

    main()

    {

    int a,b,num1,num2,temp;

    printf("请输入两个正整数 ");

    scanf("%d %d",&num1,&num2);

    if(num1

    { temp=num1;

    num1=num2;

    num2=temp;

    } //将较大数存储在num1里面

    a=num1;b=num2;

    while(b!=0)/*利用辗除法,直到b为0为止*/

    {

    temp=a%b;

    a=b;

    b=temp;

    }

    printf("最大公约数是%d ",a);

    }

    运行测试结果:

    十、判断回文数

    回文数,是指左右对称的一类数,比如123454321,688886。编程实现判断,可以使用字符数组存储各位。然后分别从首位判断是否符合对称条件。

    main()

    {

    int i,j;

    char s[16];

    printf("请输入整数 ");

    scanf("%s",s);

    for(i=0,j=strlen(s)-1;i

    if(s[i]!=s[j])

    break;

    if(i>=j)

    printf("%s是回文数! ",s);

    else

    printf("%s不是回文数! ",s);

    }

    下面是测试样例:

    小编推荐一个学C语言/C++的学习裙【 二六三,六八八,二七六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    这些是C/C++能做的

    服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等

    今天的经典算法介绍暂时就到这里,有任何问题请评论,谢谢您的支持哦,我会持续更新,给大家带来更多干货哦。

    相关文章

      网友评论

        本文标题:C语言编程经典算法

        本文链接:https://www.haomeiwen.com/subject/zrzatftx.html