美文网首页
第二章 程序的灵魂-算法

第二章 程序的灵魂-算法

作者: 爱学习的小鹏友 | 来源:发表于2019-01-01 09:02 被阅读0次

    数据的描述+操作的描述(data structure + algorithm)

    教材说还得有  程序设计方法+语言工具和环境 

    要学基本算法得看看数据结构了,学完这个我就开始玩数据结构域算法那本书。

    2.1算法的概念

    算术的和解决问题的。都需要数据模型的抽取和构建。

    2.2 简单算法举例

    求1*2*3*4*5不看书写一写

    三种,直接计算、循环、递归

    #include

    #include

    int Mul(int n)

    {

        if(n==1)

            return 1;

        else

            return n*Mul(n-1);

    }

    // The result of1*2*3*4*5

    int main()

    {

        int result=1;

        int i=1;

        int mul_end=5;

        //F1

        printf("F1----The result is  %d \n",1*2*3*4*5);

        //F2

        for(i=1;i<=5;i++)

        {

            result=result*i;

        }

        printf("F2----The result is  %d \n",result);

        //F3

        result=Mul(mul_end);

        printf("F3----The result is  %d \n",result);

        return 0;

    }

    求50个学生成绩中大于80分的成绩输出

    #include

    #include

    #define MAXSIZE 50

    int main()

    {

        //初始化学生成绩

        int student_score[MAXSIZE];

        int i=0;

        int count=0;

        for(i=0; i

        {

            student_score[i]=rand() % 100;

        }

        for(i=0; i

        {

           printf("%d\t",student_score[i]);

            if((i+1)%10==0)

            {

                printf("\n");

            }

        }

       printf("---------------------------------\n");

        for(i=0; i

        {

            if(student_score[i]>=80)

            {

               printf("%d\t",student_score[i]);

                count++;

                if((count)%5==0)

                {

                    printf("\n");

                }

            }

        }

        return 0;

    }

    判断2000-2500中的闰年

    Tips:4年一闰,百年不闰,400再闰

    #include

    #include

    //判断2000-2500的年哪些是闰年----闰年能被4整除、不能被100整除;能被100和能被400整除

    int main()

    {

        int year=2000;

        for(year=2000; year<=2500; year++)

        {

           if(((year%4==0)&&(year%100!=0))||((year%100==0)&&(year%400==0)))

            {

                printf("%d\n",year);

            }

        }

        return 0;

    }

    求1-1/2+1/3-1/4+...-1/99+1/100    

    #include

    #include

    int main()

    {

        int sum=1;

        int i=1;

        int sigh=1;

        int temp;

        for(i=1; i<=100; i++)

        {

            temp=sigh*(1/i);

            sum=sum+temp;

            sigh=(-1)*sigh;

        }

        printf("The result is %d\n",sum);

        return 0;

    }

    对于一个大于或者等于3的正整数,判断它是不是一个素数(只能被1和自己整除的数)

    #include

    #include

    #include

    int main()

    {

        int n;

        int i=2;

        int m;

        scanf("%d",&n);

        if(n<3)

        {

            printf("Please input a numberwhich is above three!\n");

        }

        else

        {

            m=sqrt(n);

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

            {

                if(n%i==0)

                {

                    printf("不是素数!\n");

                    break;

                }

            }

            if(i>m)

            {

                printf("是素数!\n");

            }

        }

        return 0;

    }

    2.3 算法的特性

    有穷性,就是的能完事

    确定性,每步得确定,不能天马行空

    0或多个输入

    1或多个输出

    有效性

    必须会设计算法,并根据算法写出程序,基本功啊

    2.4 怎样表示一个算法

    2.4.1 自然语言,估计今年能用来吹牛用,一般不用,不会实现只会说的人,呵了个呵。

    2.4.2 流程图

    本来想查查用啥工具画流程图好(传统的肯定是visio了),不过还有意外收获,word2010的smartart好多有意思的图形啊。

    伪代码页可以表示流程图

    计算机语言表示页就是代码了,不会写的时候可以先看懂代码,学会读代码,考研的题目里很大一部分就是这个。

    2.5 结构化程序设计方法

    自顶向下

    逐步细化,不能一口吃个胖子

    模块化设计

    结构化编码

    相关文章

      网友评论

          本文标题:第二章 程序的灵魂-算法

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