0
点赞
收藏
分享

微信扫一扫

4th day

飞进科技 2022-03-30 阅读 65
c语言

//

//  main.c

//  Day4

//

 P60-61.算术运算和算术表达式。

     1.算术运算符,是来做算术运算的。

         + 求数学和

         - 求数学差

         * 求数学积

         / 求数学商

         % 求模运算符(求余数)

     2.算术表达式

         由算术运算符链接起来的式子,就叫算术表达式。

         int num = 10 + 10;

         先声明int类型的变量num,然后再计算10+10这个表达式的结果,然后将这个表达式的结果赋值给num变量。

     3.分解每一种算术运算符:

        3.1 + 加法运算符  作用:求左右两边的数据的数学和。

            参与算术表达式的数据叫做操作数,操作数可以是变量。

        3.2 - 减法运算符

        3.3 * 乘法运算符

        3.4 / 除法运算符

            int res  = 10 / 4 记住:这个算术表达式的操作数都是int类型的,所以这个表达式的结果是2,不是2.5 所以正确的方式l应该是使用int变量来保存结果

            double res = 10 / 4 先声明double类型的变量res也不对,因为int的10除以int的4 结果还是整数型的2 他讲结果赋值给res 会自动转换成2.0 不是2.5

            如果要得到正确结果。

            a.将任1操作数的类型声明成double。

                 double num1 = 10;

                 int num2 = 4;

                 double res = num1 / num2;

            b.将左侧操作数乘以1.0变为double

                 int num1 = 10;

                 int num2 = 4;

                 double res = num1 * 1.0 / num2;

        3.5 % 求模运算符(求余数)

                10 % 3 的结果就是10除以3的余数

                int num1 = 10;

                int num2 = 3;

                printf("%d\n",num1 % num2);

            应用场景比较多,能做的事情也很多

            a. 可以判断1个数是不是另外1个数的倍数。

            b. 可以判断1个数是不是能被另外1个数整除。

            注意:

                a.求模运算.实型数据无法参与求模运算,因为没有意义。

                b.m % n 的结果一定是在 0 至(n-1)之间的.

    4.算术表达式的结果的类型。

        1.算术表达式都有一个结果,一般处理方式是声明1个变量将这个表达式的结果储存起来。

          用来存储表达式的结果的变量应该声明对应类型的变量。

        2.如果参与算术表达式的操作数的类型都是一致的,那么这个算术表达式的结果的类型就是这个类型。

        3.如果参与算术表达式的操作数的类型不一致,z那么这个算数表达式的结果的类型就是范围最大的那个数。

            int < float < double

    小练习:

         某超市衣服120.88一件,裤子89.9一条。 让顾客输入自己买的衣服数量和裤子数量,

         1). 显示他应该付款多少钱。

         2). 如果商家打88折 再显示打折以后应该付款多少钱

        做题目做项目都要遵循:

            1.先搞清楚需求。

            2.分析。

                a.先把自己当做普通人,遇到这样的问题该如何解决。

                b.写注释,思路和步骤使用中文写出来。

                c.再根据思路注释写代码。

                #include <stdio.h>

                int main(int argc, const char * argv[])

                {

                     double yiFuPrice = 120.88;

                     double kuZiPrice = 89.9;

                     int yiFuCount = 0 ,kuZiCount = 0;

                     printf("请输入要购买的衣服 裤子的数量:");

                     scanf("%d%d",&yiFuCount,&kuZiCount);

                     double money = yiFuPrice * yiFuCount + kuZiPrice * kuZiCount;

                     double youHuiMoney= money * .88;

                     printf("【总     价】:%.2lf\n",money);

                     printf("【优惠后总价】:%.2lf\n",youHuiMoney);

                }

    5.算术运算符的优先级.

         先乘除模,再加减,如果同级别,就从左到右依次计算。

         使用小括号可以改变运算的优先级。如果有小括号,就先算括号里的。

    6.char数据.

        char类型的数据可以参与算术运算。

        当算术表达式中的操作数是一个char类型的数据的时候,会先将这个char数据的ASCII码取出来代替。然后再参与运算。

        所以,如果操作数是一个char类型的,实际它是一个int类型的数据在参与运算。

        例:

         char ch = 'a';   //a的ascii码=97

         int num = 10 ;

         int sum = ch + num;

         printf("sum = %d\n", sum);

        输出结果: sum = 107

        要将一个小写char字母转为大写字母,就 - 32 ,如果大写转小写 就 +32 :

         int main(int argc, const char * argv[])

        {

             char ch = 'x';

             char ch2 = ch - 32 ; //小写转大写. 大写转小写就是ch+32

             printf("ch = %c\n", ch2);

             return 0;

         }

 P64-复合赋值运算符。

    1.要将一个变量的值再自身的基础上增加指定的数。

         int num = 10;

         num = num +2; //num=12

    2.让一个变量的值再资深的基础上增加指定的数的简写方式。

    使用复合运算符 : +=

         int num =10;

         num += 2; //完全等价于 num = num + 2

    3.其他复合运算符

     -= num -= 2 //完全等价于 num = num - 2

     *= num *= 2 //完全等价于 num = num * 2

     /= num /= 2 //完全等价于 num = num / 2

     %= num %= 2 //完全等价于 num = num % 2

    4.如果以后你要改变1个变量的值,是在资深的基础之上做改变 那么久可以使用复合赋值运算符

 P65-自增自减运算符。

    1.自增运算符。

      ++

    2.自增表达式。

        2.1 前自增表达式

            int num = 1;

            ++num;

        2.2 后自增表达式

             int num = 1;

             num++;

        3.3.无论是前自增表达式,还是后自增表达式,都是将自身的值+1.

    3.自增表达式是1个表达式,既然是表达式,那么必然就有一个结果,那么我们就用一个变量吧这个表达式的结果存储起来。

        3.1 后自增表达式的结果的计算方式:

            先将自身的值取出来,作为后自增表达式的结果,然后再讲自身的值+1;

            int i = 1;

            int j = i++; //j = 1  先赋值1,然后再将i的值+1

        3.2 前自增表达式的结果的计算方式:

            先将自身的值+1,然后在将自身的值取出来作为表达式的结果。

            int i = 1;

            int j = ++i; //j = 2 先将i的值+1 然后再赋值。

    4.自增运算符的优先级比算术运算符的优先级要高。

         int i = 1;

         int j = 2;

         int k =i++ + ++j + i++;

                1/2 + 3/3 + 2/3

                1   + 3   + 2

         printf("i = %d\n", i); //3

         printf("j = %d\n", j); //3

         printf("k = %d\n", k); //6

         return 0;

         int i = 1;

         int j = i++ + ++i + i++ + ++i + i++;

         //          1/2  + 3/3 + 3/4 +5/5 + 5/6

         printf("i = %d\n", i); //i=6

         printf("j = %d\n", j); //j=17

    5.自减如是。

 P66 - 逗号表达式:

    1.逗号在C语言中也是1个运算符。

    2.逗号表达式:

     就是有逗号连接起来的1个式子。

     用逗号将其他的表达式连起来,就叫逗号表达式。

    语法格式:

        表达式1,表达式2,表达式3,表达式4,......表达式n;

    3.逗号表达式的执行步骤和结果。

        从头到尾去执行每个表达式,最后1个子表达式的结果就是整个逗号表达式的结果,

         int i = 0,j = 1,k = 2;

         int num =( i + 3 , j + 3, k + 3, i + k );

         printf("i = %d\n", i);//i = 0

         printf("j = %d\n", j);//j = 1

         printf("k = %d\n", k);//K = 2

         printf("num = %d\n",num);//num = 2

    4.逗号表达式的目的,并不是想要前面表达式的结果,只是让前面表达式去执行,要最后一个表达式的结果。

      前面的表达式只是想要其执行,不关心结果,因为前面的表达式一旦执行就会影响最后一个表达式的结果。

      而我们关心的时候,前面的表达式执行完后,最后一个表达式的结果是多少。

         int i = 0,j = 1,k = 2;

         int num =( i++ , j++ , k++ , i + j + k );

              //    0->1  1->2  2->3

         printf("i = %d\n", i);//i = 1

         printf("j = %d\n", j);//j = 2

         printf("k = %d\n", k);//K = 3

         printf("num = %d\n",num);//num = 6

            int num =( i++ , j++ , k++ , i + j + k );

            效果等效:

             i++;

             j++;

             k++;

             int num = i + j + k;

举报

相关推荐

0 条评论