4th day

4th day,第1张

//

//  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 

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;

 P67 - 比较表达式的结果。


     1.比较运算符。


         > 大于

         < 小于

         >= 大于等于

         <= 小于等于

         == 等于

         != 不等于

     2.比较表达式。


        由比较运算符连接起来的式子,就叫做比较表达式。


     3.比较表达式的结果类型。


         1个比较表达式代表:1个条件。


         而1个条件的结果:成立或者不成立,真的或者假的。


         在C语言中使用int类型的数据来表示真假。


         0   表示假

         非0 表示真

         所以我们应该用一个int类型的变量来保存1个比较表达式的结果。


         如果比较表达式描述的条件是成立的,那么这个比较表达式的结果就为1.

         如果比较表达式描述的条件是不成立的,那么这个比较表达式的结果就为0.

     4. 比较运算符介绍。


         1. >    大于运算符。


 

               如果左边的数据大于右边的数据,那么条件成立。


  结果就是1(真),否则为0。


         2. >=   大于等于运算符。


 

               如果左边数据大于等于右边的数据,那么条件成立。


结果就是1(真),否则为0。


         3. <    小于运算符。


     

                如果左边的数据小于右边的数据,那么条件成立。


  结果就是1(真),否则为0。


         4. >=   小于等于运算符。


 

                如果左边数据小于等于右边的数据,那么条件成立。


结果就是1(真),否则为0。


         5. ==   相等比较运算符。


 

                如果左边数据等于右边的数据,那么条件成立。


结果就是1(真),否则为0。


         6. !=   不等比较运算符。


 

                如果左边数据不等于右边的数据,那么条件成立。


结果就是1(真),否则为0。


 P69    -   比较运算表达式的场景。


     5.常见的比较运算表达式的场景。


     5.1 比较运算符的两边可以是变量,也可以是常量,还可以是个表达式。


                如果比较表达式里有表达式,要现将表达式的结果计算出来以后再比较运算。


     5.2 判断1个表达式的结果和另外一个数据之间的关系。


         例1:写1个表达式,判断num是否为5的倍数。


                     int num = xx;

                     num % 5 == 0;

     6.char数据也可以参与比较运算。


(比较的是相应的ASCII码)

练习题

 1.接受用户从壁盘上输入的两个字符,然后输出他们   

        char ch1 = ' ' ,ch2 =' ' ;
        printf("输入2个字符(空格间隔):");
        rewind(stdin);
        scanf("%c %c",&ch1,&ch2);
        printf("ch1 = %c   ch2 = %c\n",ch1,ch2);
    

 2.接受用户从键盘上输入的两个双精度浮点数,然后输出他们

double d1 = 0.0 ,d2 = 0.0 ;
printf("输入2个double小数(空格间隔):");
rewind(stdin);
scanf("%lf %lf",&d1,&d2);
printf("d1 = %lf   d2 = %lf\n",d1,d2);

3.接受用户从键盘上输入的两个单精度浮点数,然后输出他们(保留两位小数)

float f1 = 0.0 f,f2 = 0.0 f;
printf("输入2个float小数(空格间隔):");
rewind(stdin);
scanf("%f %f",&f1,&f2);
printf("f1 = %.2f   f2 = %.2f\n",f1,f2);

4.用户从键盘上输入两个整数,然后输出他们和   

int num1 = 0 ,num2 = 0 ;
printf("输入2个整数(空格间隔):");
rewind(stdin);
scanf("%d %d",&num1,&num2);
printf("两数之和为:%d\n",num1+num2);

5.用户从键盘上输入两个整数,然后输出他们差 

int num1 = 0 ,num2 = 0 ;
printf("输入2个整数(空格间隔):");
rewind(stdin);
scanf("%d %d",&num1,&num2);
printf("两数之差为:%d\n",num1-num2);

6.用户从键盘上输入两个整数,输出他们的商

int num1 = 0 ,num2 = 0 ;
printf("输入2个整数(空格间隔):");
rewind(stdin);
scanf("%d %d",&num1,&num2);
printf("两数之商为:%d\n",num1/num2);

7.用户从键盘上输入两个整数,输出他们的余数

int num1 = 0 ,num2 = 0 ;
printf("输入2个整数(空格间隔):");
rewind(stdin);
scanf("%d %d",&num1,&num2);
printf("余数为:%d\n",num1%num2);

9.用户输入距形的长和宽,求出矩形的面积和周长,并将结果显示在屏易上。


面积:长*宽               周长:(长+宽)*2

int length = 0 , width = 0;
printf("请输入长和宽(空格分隔):");
rewind(stdin);
scanf("%d %d",&length,&width);
printf("面积:%d ㎡\n",length*width);
printf("周长:%d m\n",(length+width)*2);

   

10.要求用户输入原型的半径,求出圆形的面积和周长,并将结果显示在屏算上。


面积:pi*r*r 周长:2*pi*r PI的值取3.14

float pi = 3.14f ;
float r = 0.0f;
printf("请输入半径:");
rewind(stdin);
scanf("%f",&r);
printf("面积:%.2lf ㎡\n",pi*r*r);
printf("周长:%.2lf m\n",2*pi*r);

 11.编程实现计算几天(如46天)是几周零几 天.天数要求用户 从控制台输入

请用户输入1个天数 计算用户输入的天数是几周零几天。


int days = 0 ;
int week = 0 ;
int weekday = 0 ;
printf("输入要计算的天数:");
rewind(stdin);
scanf("%d",&days);
week = days / 7;
weekday = days % 7;
printf("第%d天是第%d周的第%d天\n",days,week,weekday);

12.请用户从控制台输入1个秒数,求用户输入的秒数是几天几小时几分钟几秒?*****

int seconds = 0 ;
int day,hour,min,sec;
int remainder;
printf("请输入一个秒数:");
rewind(stdin);
scanf("%d",&seconds);
//1分钟60秒,1小时3600秒,1天86400秒
day = seconds / 86400 ; //求出天数
remainder = seconds % 86400 ;
hour = remainder / 3600 ; //求出小时数
remainder = remainder % 3600;
min = remainder / 60 ; // 求出分钟数
sec = remainder % 60 ; // 余数为秒
printf("%d 秒是 %d 天 %d 小时 %d 分钟 %d 秒",seconds,day,hour,min,sec);

13.编一个程序,定义圆周率Pi=3.14.

要求用户输入圆柱的底国的半径和圆柱的高 求出圆柱的体积。


圆柱的体积:Pi*圆的半径的平方*圆柱的高

float pi = 3.14f ;
float r = 0.0f ;
int height = 0 ;
printf("请输入半径和高 (空格分割):");
rewind(stdin);
scanf("%f %d",&r,&height);
printf("圆柱体的体积:%.2lf m³\n",pi*r*r*height);

14.裤子的单价是78.8元,衬衫的单价是45.6元。


输入顾客购买的部子数量 和衬衫的数量

显示顾客应该付多少钱。


float kuZiPrice = 78.8f ;
float chenShanPrice = 45.6 ;
int kuZiCount = 0 ;
int chenShanCount = 0 ;
printf("请输入裤子衬衫的购买数量(空格分隔):");
rewind(stdin);
scanf("%d %d",&kuZiCount,&chenShanCount);
printf("应付款: %.2lf元\n",kuZiCount * kuZiPrice + chenShanCount * chenShanPrice);

欢迎分享,转载请注明来源:内存溢出

原文地址:https://outofmemory.cn/langs/562260.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-01
下一篇2022-04-01

随机推荐

  • 品牌孵化公司到底是做什么的,为什么很多公司叫孵化公司

    近年来,在各处见到孵化器的标志,不清楚的人都以为是所谓孵化器便是孵化小鸡的设备或者机器,其实不然。孵化器是原指人工孵化禽蛋的设备,后引入经济领域,成为一种新型的社会经济组织。其职能是通过提供研发、生产、经营的场地,通讯、网络与办公等方面的

    2022-12-29
    2100
  • 黄酒的起源是什么,黄酒为什么是黄色的

    对于爱酒人士来说,一年四季都适合喝酒,而每个季节适合喝的酒又不尽相同。冬天适合喝配白酒,夏天适合喝啤酒,春天可百搭,秋天则适合喝黄酒。相信大家对白酒、啤酒及葡萄酒极为熟悉,却有些多人对黄酒不了解。那黄酒的起源是什么,黄酒为什么是黄色的?下面

    2022-12-29
    1900
  • 男子乒乓球世界排名榜,中国男乒乓球世界冠军名单

    12月14日,国际乒联发布了最新一周的世界排名。国乒主力队员樊振东和陈梦依旧位居榜首。本期世界排名是2021年WTT 世界杯决赛之后的最新排名。截至目前,樊振东自2020年4月开始,已雄居世界排名第一连续第21个月。男单方面,国乒选手樊振东

    2022-12-29
    2400
  • 西部大开发的三个阶段介绍_西部大开发的时间意义

    近年来,我国东部沿海地区吃了战略和地理位置的红利,经济一路发展。但中国这么大,西部地区相较东部,占了全国71.4%的面积,创造的GDP却只有15%。所以,这么大片区域的发展当然不能落下,于是,西部大开发的战略应运而生。整个规划总体历时50年

  • 渣男的内心世界深刻剖析,怎样才被称为渣男

    当女人满怀憧憬进入爱情时,很难分得清,眼前这个粉红色的梦,到底是不是渣男编织的套路。这些花心又无情的渣男,在收割了一个又一个女孩的真心之后,不会有丝毫内疚,他们只会得意于自己“战利品”的增加。对于渣男来说,鞍前马后是套路,伤心欲绝也

  • 航天员刘洋现状如何_宇航员刘洋给孩子的一封信

    看着你睡梦中天使般的脸庞,我的目光久久不愿离开,我的心也在这世上最温柔的美好当中幸福的沉醉。时光过得好快,还记得你第一声嘹亮的啼哭,第一次咿呀学语,第一次喊妈妈,第一次蹒跚学步,第一天入园的模样,在我不断后悔还没来得及好好陪你时,你却转眼已

    2022-12-29
    1900
  • 玉米糊的热量高吗

    玉米多吃不会增肥,反而有减肥的功效。所以很多人瘦身的朋友喜欢吃玉米粥,那么玉米糊的热量高吗?玉米糊的热量高吗1、玉米糊的热量,以100克可食部分计量,大约是38大卡,由此可以看出玉米的热量是非常低的。每100克玉米糊的热量大约占中国营养学会

    2022-12-29
    1900
  • 皮毛一体皮衣能水洗吗 皮毛一体皮衣可以水洗吗

    导读:皮毛一体皮衣能水洗吗?下面小编为大家整理推荐。1、皮毛一体的衣服是不建议水洗的,若是水洗的话很容易导致皮革缩水变形,时间久了还容易裂开,且皮草要上面的鳞片要是在水1、皮毛一体的衣服是不建议水洗的,若是水洗的话很容易导致皮革缩水变形,时

    2022-12-29
    2200
  • 住房贷款和住房租金可以同时扣除吗

    导读:有的朋友可能知道住房贷款和住房租金是可以扣除个税的,那么,住房贷款和住房租金可以同时扣除吗?住房贷款和住房租金不可以同时扣除。纳税人及其配偶在一个纳税年度内不能同时分别享受住房贷款利息和住房租金专项附加扣除。住房贷款利息和住房租金只能

    2022-12-29
    1800

发表评论

登录后才能评论

评论列表(0条)

    保存