• 第二章 算法


    1.基本概念

    (1)对数据的描述

    (2)对操作的描述

    算法+数据结构=程序

    2.算法的特性

    • 有穷性
    • 确定性
    • 有零个或多个输入
    • 有一个或多个输出
    • 有效性

    3.判断素数

    1. #include
    2. int main(void){
    3. int a;
    4. printf("输入一个整数:");
    5. scanf("%d",&a);
    6. if(a<=1){
    7. printf("非素数");
    8. }
    9. else if(a==2){
    10. printf("是素数");
    11. }
    12. else{
    13. for(int i=2;i
    14. if(a%i==0){
    15. printf("非素数!\n");
    16. return 0;
    17. }
    18. else{
    19. printf("成功通过1次\n");
    20. }
    21. }
    22. printf("是素数!");
    23. }
    24. return 0
    25. }

    4.判断闰年

    1. #include
    2. int main(void){
    3. int a;
    4. printf("输入一个整数:");
    5. scanf("%d",&a);
    6. if(a%4 ==0 && a%100! =0){
    7. printf("是闰年!\n");
    8. }else if(n%400==0){
    9. printf("是闰年!\n");
    10. }
    11. else{
    12. printf("非闰年!\n");
    13. }
    14. return 0;
    15. }

    5.判断回文数

    1. #include
    2. int main(void){
    3. int a=0,b=0,i=0;
    4. printf("输入一个整数:");
    5. scanf("%d",&i);
    6. a=i;
    7. while(a>0){
    8. b=b*10+a%10;
    9. a=a/10;
    10. }
    11. if(b==i)
    12. printf("是回文数!");
    13. else{
    14. printf("非回文数!");
    15. return 0;
    16. }
    17. }

    重难点:

    1.使用printf和scanf函数时,要在最前面加上#include"stdio.h"

    2.printf可以只有一个参数,也可以有两个参数

    3.printf("a=%d,b=%d",12,34) 显示的是a=12,b=34

    4.printf(“a=%d, \n b=%d",12,34) 输出的结果是

    a=12

    b=34

    格式说明

    表示内容

    格式说明

    表示内容

    %d

    整型 int

    %c

    字符char

    %Id

    长整型 long int

    %s

    字符串

    %f

    浮点型 float

    %o

    八进制

    %If

    double

    %#o

    带前导的八进制

    %%

    输出一个百分号

    %x

    十六进制

    %5d

    %#x

    带前导的十六进制

    printf("%2d",123);第二部分有三位,大于指定的两位,原样输出123

    printf("%5d",123);第二部分有三位,小于指定的五位,左边补两个空格 123

    printf("%10f",1.25);小数要求补足6位,没有六位的补0。结果为 1.250000

    printf("%5.3f",125);小数三位,整个五位,结果为1.250

    printf("%3.1f",1.25);小数一位,整个三位,结果为1.3(要四舍五入)

    int x=97;

    printf("%d,x); 结果为97

    printf("%c,x);结果为a

    指定输入的长度(考试重点)

    终端输入:1234567

    scanf("%2d%4d%d",&x,&y,&z);x为12,y为3456,z为7

    什么叫结构化的算法?为什么要提倡结构化的算法?

    结构化算法:由一些顺序,选择,循环等基本结构按照顺序组成,在基本结构之间不存在向前或向后的跳转,流程的控制只存在于一个基本的范围之内。

    三种基本结构:

    顺序结构:顺序结构是一种线性,有序的结构,它依次执行各语句模块。

    选择结构:根据条件成立与否选择程序执行的通路。

    循环结构:重复执行一个或多个模块,直到满足某一条件为止。

    伪代码:

        1.依次将10个数输入,要求输出其中最大的数。

    1. begin
    2. input 10个数据=>array
    3. array[0]=>max
    4. //循环9次,依次取剩余的9个数据
    5. 1=>i
    6. while i<10{
    7. array[i]=>temp
    8. if temp > max{
    9. temp => max
    10. }
    11. }
    1. 有3个数a,b,c,要求按大小顺序把它们输出。
    1. begin
    2. input a
    3. input b
    4. input c
    5. if a > b{
    6. a =>t
    7. b =>a
    8. t =>b
    9. }
    10. if a > c{
    11. c =>t
    12. a =>c
    13. t =>a
    14. }
    15. if b>c{
    16. c =>t
    17. b =>c
    18. t =>b
    19. }
    20. print a
    21. print b
    22. print c
    23. end
    1. 求1+2+3...+100。
    1. begin
    2. 1=>i
    3. 0=> sum
    4. while i <= 100
    5. {
    6. sum + i =>sum
    7. i + 1=>i
    8. }
    9. print sum
    10. end
    1. 判断一个数n能否同时被3和5整除。
    1. begin
    2. input n
    3. if n%3==0{
    4. if n%5==0{
    5. print 能同时被整除
    6. }
    7. else{
    8. print 不能同时被整除
    9. }
    10. }
    11. end
    1. 将100~200之间的素数输出。
    1. begin
    2. 100 =>i
    3. 200 =>N
    4. while i <= N{
    5. 2=>k
    6. while k
    7. if i%k==0
    8. break;
    9. k+1=>k
    10. }
    11. if k==i
    12. print i
    13. i+1=>i
    14. }
    15. end
    1. 求两个数m和n的最大公约数。
    1. begin
    2. input m
    3. input n
    4. if m
    5. m=>t
    6. n=>m
    7. t=>n
    8. }
    9. while n!=0{
    10. m%n=>r
    11. m=>n
    12. r=>n
    13. }
    14. print m
    15. end

  • 相关阅读:
    Go 协程与Channel管道
    汇编语言实验7:子程序结构设计
    数据挖掘经典十大算法_NaiveBayes朴素贝叶斯
    【libGDX】加载G3DJ模型
    ES6 Promise链式调用解决异步回调
    第四个专栏,Kubernetes云原生实战,它来了~
    `英语` 2022/8/12
    Com多进程通信实现
    Spring Boot自动加载
    贪心算法(三) | 两个维度权衡问题 | leecode刷题笔记
  • 原文地址:https://blog.csdn.net/qq_43714918/article/details/133523492