美文网首页
电商专业学习嵌入式软件开发第六十三天

电商专业学习嵌入式软件开发第六十三天

作者: 雨打梨花闭门寒 | 来源:发表于2017-04-17 20:36 被阅读0次
    • C基础第一天

    今天转到新班1703班,前面的课程没有听,今天第一天讲的是循环,最后还给我们讲了自幂数和斐波那契数列,最后讲的这俩到现在都迷糊呢。循环虽然听了好多遍,但是做起题目来就不行了,今天记的代码都是在课堂上没有写出来的,而且好多都是之前做过的。这些要重点看一下了。

    //回文数
    #include <stdio.h>
    int main(int argc,char *argv[])
    {
        printf("请输入一个数:");
        int a,i,x,num;
        scanf("%d",&x);
        for(i = 100;i <= x;i++)
        {
            num = i;
            a = 0;
            while(num > 0)
            {
                a=a*10+num%10;
                num /= 10;
            }
            if(a == i)
            {
                printf("%d\n",a);
            }
        }
        return 0;
    
    //鸡兔同笼:35头,94足
    #include <stdio.h>
    int main(int argc,char *argv[])
    {
        int i,j;
        for(i = 0;i <= 35;i++)
        {
            for(j = 0;j <= 35;j++)
            {
                if(i + j == 35 && 2*i + 4*j == 94)
                printf("鸡 = %d,兔 = %d\n",i,j);
            }
        }
        putchar('\n');
        return 0;
    }
    
    //逆序输出
    #include <stdio.h>
    int main(int argc,char *argv[])
    {
        int i,a = 0;
        printf("请输入一个4位数:");
        scanf("%d",&i);//1234
        while(i > 0)//123,12,1
        {
            a = a*10+i%10;//a = 10*0+4;a = 4*10+3 = 43;a = 43*10+2 = 432;s = 432*10+1 = 4321;
            i/=10;//123,12,1,0
        }
        
        printf("%d\n",a);
        return 0;
    }
    
    //斐波那契数列
    #if 0
    #include <stdio.h>
    int main(int argc,char *argv[])
    {
        int ax = 1,ay = 1,an,n,num;//ax,ay代表前两项,an代表通项
        printf("请输入最大范围:");
        scanf("%d",&num);
        printf("a1 = %d\na2 = %d\n",ax,ay);
        for(n = 3;n <= num;n++)
        {
            an = ax + ay;//a3 = a1+a1 = 2;
            printf("a%d = %d\n",n,an);
            ax = ay;//a1 = a2
            ay = an;//a2 = a3
        }
        putchar('\n');
        return 0;
    }
    #else
    #include <stdio.h>
    int main(int argc,char *argv[])
    {
        int ax = 1,ay = 1,an,n,num,sum = 0;//ax,ay代表前两项,an代表通项
        printf("请输入最大范围:");
        scanf("%d",&num);
        printf("a1 = %d\na2 = %d\n",ax,ay);
        sum = ax+ay;
        for(n = 3;n <= num;n++)
        {
            an = ax + ay;//a3 = a1+a1 = 2;
            printf("a%d = %d\n",n,an);
            sum += an;
            ax = ay;//a1 = a2
            ay = an;//a2 = a3
        }
        printf("%d\n",sum);
        return 0;
    }
    #endif
    
    //只能被1和自身整除的数叫做质数(素数)
    # if 0
    #include <stdio.h>
    int main(int argc,char *argv[])
    {
        int a,num,j;
        printf("请输入最大范围:");
        scanf("%d",&num);
        for(a = 0;a < num;a++)
        {
            for(j = 3;j <= a;j++)
            {
                if(a%j == 0)
                    break;//跳出所有循环
            }
            if(j == a)
                printf("%d ",a);
        }
        putchar('\n');
    
        return 0;
    }
    #else
    #include <stdio.h>
    #include <math.h>
    int main(int argc,char *argv[])
    {
        int a,num,j;
        printf("请输入最大范围:");
        scanf("%d",&num);
        for(a = 1000;a < num;a++)
        {
            for(j = 2;j < sqrt(a);j++)
            {
                if(a%j == 0)
                    break;//跳出所有循环
            }
            if(j >= sqrt(a))
                printf("%d ",a);
        }
        putchar('\n');
    
        return 0;
    }
    #endif
    
    //打印三角形
    #include <stdio.h>
    int main(int argc,char *argv[])
    {
        int i,j;
        for(i = 0;i < 10;i++)
        {
            for(j = 1;j <= i;j++)
            {
                printf("*");
            }
            printf("\n");
        }
        return 0;
    }
    

    if语句:构成分支结构,他会根据给定的条件进行判断,以决定执行哪个分支结构
    if语句有三种形式:
    1.基本形式if
    if(表达式)语句
    如果表达式为真则执行其后的语句,否则不执行

    if-else()形式
    if(表达式)
    语句1
    else
    语句2
    如果表达式的值为真,则执行语句1,否则执行语句2

    if-else-if形式
    前两种一般用于两个分支情况,当有多个分支时使用这种方式

    if(表达式1)
    语句1
    else if(表达式2)
    语句2
    else if(表达式3)
    语句3
    ............
    else if(表达式n)
    语句n
    else
    语句m

    依次判断表达式的值,当出现某个值为真时,则执行对应语句,然后跳到整个if语句之外,继续执行其他程序,如果所有的语句都为假则执行m语句,然后继续执行后面的语句

    作业:输入几就打印周几,输入数字打印月份

    注意:
    1.if语句中if之后都为表达式,通常为逻辑表达式或关系表达式,但是也可以为其他表达式,如赋值表达式或变量
    2.if语句中条件判断表达式必须用括号"()"括起来
    3.if语句中,当执行语句为单语句时可以不加括号,当含有多条语句时必须加"{}",并且括号后没有分号

    if语句的嵌套
    当if语句中的执行语句又是if语句时,构成if语句的嵌套
    if(表达式)
    if 语句
    或者
    if(表达式)
    if(语句)
    else
    if(语句)

    为避免二义性C语言规定,else总是与它前面最近的if配对

    条件运算符和条件表达式"?:"
    一般形式:表达式1?表达式2:表达式3
    如果表达式1的值为真,则表达式2的值为整个表达式的值,否则表达式3的值为整个表达式的值
    max = a > b ? a : b

    switch语句,用于多分支选择
    一般形式:
    switch(表达式)
    {
    case 常量表达式1:语句1;
    break;
    case 常量表达式2:语句2;
    break;
    case 常量表达式3:语句3;
    break;
    .............
    case 常量表达式n:语句n;
    break;
    default:语句n+1;
    break;
    }
    计算表达式的值,逐个与其后的常量表达式进行比较,当表达式与某个常量表达式的值相等时,几执行其后的语句,然后不再进行判断,执行后面的所有case语句,如果表达式的值都不相同,则执行default中的语句

    C语言提供了break语句,用来跳出switch语句

    注意:
    1.case语句之后的常量表达式的值都不能相同,否则会报错
    2.case中允许有多个语句,可以不用花括号
    3.default可以省略
    *********************循环结构***********************
    循环结构的特点:在给定条件成立时,反复执行某段程序,知道条件不成立为止,给定的条件称为循环条件,反复执行的程序段称为循环体

    循环分类:while循环,do-while循环,for循环
    while语句的一般形式:
    while(表达式)语句:表达式为循环条件,语句为循环体
    while语句的含义是计算表达式的值,如果表达式的值为真则执行循环体
    (1)while语句的表达式一般是关系表达式或逻辑表达式,只要表达式为真就可继续循环
    (2)循环体含有一个以上的语句必须加花括号
    作业:打印等腰三角形

    do-while语句
    一般形式:
    do
    语句
    while(表达式);
    与while循环不同的是该循环先执行循环体,后判断表达式是否为真,该循环至少执行一次

    for循环
    for语句可以完全替代while语句
    一般形式:
    for(表达式1;表达式2;表达式3)
    执行过程:
    1,先求表达式1,
    2,求解表达式2,如果为真,则执行for 语句中指定的 内嵌语句,然后执行下一步,若其为假,则循环结束。
    3,求解表达式3
    4,转回第二步继续执行
    5,循环结束,执行下一段代码。

    交换两个数:
    不用第三个数的时候:
    a = 3;b = 5;
    a = a + b;
    b = a - b;
    用到第三个数的时候:
    t = a;a = b;b = t;
    a = a - b;

    自幂数:一个数有几位就用每一位上的数字乘上几次方,最后等于这个数
    如:123 = 13+23+3^3,12345 = 15+25+35+45+5^5

    相关文章

      网友评论

          本文标题:电商专业学习嵌入式软件开发第六十三天

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