第二章 程序的灵魂-算法

数据的描述+操作的描述(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 结构化程序设计方法

自顶向下

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

模块化设计

结构化编码

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容