首页 > 其他分享 >運算符,表達式

運算符,表達式

时间:2022-12-21 14:35:19浏览次数:28  
标签:算符 division 表達式 一個 左值 int printf

循環簡介:這個程序是一個打印一個鞋碼為9并把他轉化爲英寸的程序,要發揮出計算機的優勢可以改進成一個循環來進行打印多個值

 1 /*shoes1.c把鞋碼轉換成英寸*/
 2 #include<stdio.h>
 3 #define ADJUST 7.31
 4 int main()
 5 {
 6     const double SCALE=0.333;
 7     double shoe,foot;
 8     
 9     shoe=9.0;
10     foot=SCALE*shoe+ADJUST;
11     printf("Shoe size (men's)    foot length\n");
12     printf("%14.1f %11.2f inches\n",shoe,foot);
13     
14     return 0;/*本程序計算了一個鞋碼為9轉化為英寸的值*/
15 }
16 /*
17 輸出樣例
18 
19 Shoe size (men's)    foot length
20            9.0       10.31 inches
21 
22 */
23 /*如何發揮計算機的優勢來計算許多的值?可以用到循環*/
 1 /*shoes2.c改進程序加入循環*/
 2 #include<stdio.h>
 3 #define ADJUST 7.31
 4 int main()
 5 {
 6     const double SCALE=0.333;
 7     double shoe,foot;
 8     
 9     printf("Shoe size (men's)    foot length\n");
10     shoe=3.0;
11     while(shoe<18.5)
12     {
13             foot=SCALE*shoe+ADJUST;
14             shoe=shoe+1;/*shoe++/shoe+=1*/
15 
16                 printf("%14.1f %11.2f inches\n",shoe,foot);
17      } 
18      printf("If the shoe fits, wear it.\n"); 
19     
20     return 0;/*本程序計算了鞋碼為3.0-18.5轉化為英寸的值*/
21 }
22 /*
23 輸出樣例
24 
25 Shoe size (men's)    foot length
26            4.0        8.31 inches
27            5.0        8.64 inches
28            6.0        8.97 inches
29            7.0        9.31 inches
30            8.0        9.64 inches
31            9.0        9.97 inches
32           10.0       10.31 inches
33           11.0       10.64 inches
34           12.0       10.97 inches
35           13.0       11.31 inches
36           14.0       11.64 inches
37           15.0       11.97 inches
38           16.0       12.31 inches
39           17.0       12.64 inches
40           18.0       12.97 inches
41           19.0       13.30 inches
42 If the shoe fits, wear it.
43  
44 */

shoes2.c加入了while循環,循環重複執行塊中的程序語句:

判斷條件(shoe<18.5)如果shoe<18.5那麽程序會一直執行,知道運行到shoe=19時,此時19<18.5為假。循環停止。

運算符:

賦值運算符=:‘=’不是等於,而是賦值給誰(運算方向是從右往左計算)

int num=3,這裏的意思是把3賦值給一個名爲num的整型變量。

i=i+1,這裏的意思是,把變量i的加一的新值賦值給變量i。

=的左側必須是一個變量名,=右邊是一個字面常量。

左值,右值:

左值(lvalue)

1.它可以指定一個對象,可以引用内存中的地址。

2.它可用在賦值運算符的左側。

可修改的左值:

賦值運算符的左側是一個可修改的左值。

右值(rvalue)

1.能賦值給可修改左值的量。

右值可以常量,可以是變量或者是其他可求值表達式(如函數調用)

int ex;(可修改的左值)

int why;(可修改的左值)

int zee;(可修改的左值)

const int TWO =2;(const變量,TWO是不可改變的左值,只能位於賦值運算符的右側。)/*注解:=在這裏的意思是初始化,并未違反規定*/

why = 42;(可修改的左值,42是右值)

zee = why;(可修改的左值)

ex = TWO*(why+zee);(ex是可修改的左值,(why+zee)是右值)

“=”運算符的左側應該是可修改的左值

C語言可以三重賦值:

 1 /*golf.c高爾夫錦標賽記分卡*/
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int jane, tarzan, cheeta;
 6     
 7     cheeta=tarzan=jane=68;
 8     /*C語言可以三重賦值,把68先賦值給jane,然後再賦值給tarzan,最後賦值給cheeta*/
 9     printf("                   cheeta tatzan jane\n");
10     printf("First round score %3d %6d %6d\n",cheeta,tarzan,jane);
11      
12     return 0;
13 }
14 /*
15 輸出樣例:
16  
17                    cheeta tatzan jane
18 First round score  68     68     68
19 
20 */

加法運算符和減法運算符:

加法運算符(+):可以表示爲兩個或多個元素相加。

printf("%d",1+2);->打印的不是“1+2”,而是1+2經過加法運算后的3.

相加的值可以是變量也可以是常量。

sum=index+salary;

執行這個語句所表達的是,使用加法運算符把這兩個表達式的值相加后賦值給sum。index和salary是可修改的左值,(index+salary)是一個右值。

減法運算符(-):和“+”的使用一樣。

這裏的加法和減法運算符都是二元運算符,即需要兩個運算對象來進行運算的運算符。

“+”,“-”也可以表示一個數字的正負:

int a=-1,int b=+2;

這裏的+ -是一元運算符(只需要一個運算對象)。

乘法運算符:

“*”表示乘法運算符,cm=2.54*inch。(用inch乘以2.54然後賦值給cm)

如何打印從(1-20)的平方表?

 1 /*squares.c計算1-20的平方*/
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int num=1;
 6     int sum=0;
 7     
 8     while(num<=20)
 9     {
10         sum=num*num;
11         printf("%4d %6d\n",num,sum);
12         num++;/*num=num+1/num+=1*/
13     }
14     return 0;
15 }
16 /*
17 輸出樣例
18 
19    1      1
20    2      4
21    3      9
22    4     16
23    5     25
24    6     36
25    7     49
26    8     64
27    9     81
28   10    100
29   11    121
30   12    144
31 ...(結果太多其他輸出省略) 
32  
33 */

國王獎勵麥子程序:

 1 /*wheat.c指數增長*/
 2 #include<stdio.h>
 3 #define SQUARES 64 //棋盤中的格子數量(64) 
 4 int main()
 5 {
 6     const double CROP=2E16;//世界小麥年產穀粒數
 7     double current,total;
 8     int count=1;//初始化
 9     
10     printf("square      grains        total     ");
11     printf("fraction of \n");
12     printf("            added         grains    ");
13     printf("world total\n");
14     total=current=1;//從第一顆穀粒開始 
15     printf("%4d %14.2e %12.2e %12.2e\n",
16             count,current,total,total/CROP);
17     while(count<SQUARES) 
18     {
19         count=count+1;
20         current=2.0*current;//下一個方格穀粒翻倍 
21         total=total+current;//更新總數 
22         printf("%4d %14.2e %12.2e %12.2e\n",
23                 count,current,total,total/CROP);
24     }
25     printf("That's all.\n"); 
26     
27     return 0;
28 }
29 /*
30 輸出樣例:
31 
32  square      grains        total     fraction of
33             added         grains    world total
34    1      1.00e+000    1.00e+000    5.00e-017
35    2      2.00e+000    3.00e+000    1.50e-016
36    3      4.00e+000    7.00e+000    3.50e-016
37    4      8.00e+000    1.50e+001    7.50e-016
38    5      1.60e+001    3.10e+001    1.55e-015
39    6      3.20e+001    6.30e+001    3.15e-015
40    7      6.40e+001    1.27e+002    6.35e-015
41    8      1.28e+002    2.55e+002    1.27e-014
42    9      2.56e+002    5.11e+002    2.55e-014
43   10      5.12e+002    1.02e+003    5.12e-014
44   11      1.02e+003    2.05e+003    1.02e-013
45   12      2.05e+003    4.10e+003    2.05e-013(省略了剩餘結果)
46 ...
47 That's all.
48 
49 */

除法運算符:

“/”表示除法運算符,/左側是被除數,右側是除數。

整數除法:整數除法得到的結果是整數。(整數除法得到結果后小數後面的結果會被丟棄,這稱之爲截斷。)

浮點數除法:浮點數除法得到的結果是浮點數。

 1 /*divide.c演示除法*/
 2 #include<stdio.h>
 3 int main()
 4 {
 5     printf("integer division: 5/4 is %d\n",5/4);
 6     printf("integer division: 6/3 is %d\n",6/3);
 7     printf("integer division: 7/4 is %d\n",7/4);
 8     printf("floating division: 7./4. is %1.2f\n",7./4.);
 9     printf("floating division: 7.0/4.0 is %1.2f\n",7.0/4.0);
10     printf("mixed division: 7./4 is %1.2f\n",7./4);
11     
12     return 0;
13  } 
14  /*
15 輸出樣例 
16 
17 integer division: 5/4 is 1
18 integer division: 6/3 is 2
19 integer division: 7/4 is 1
20 floating division: 7./4. is 1.75
21 floating division: 7.0/4.0 is 1.75
22 mixed division: 7./4 is 1.75
23  //在計算除法運算前,編譯器會把整數轉化成浮點數。
//編譯器不能真正用浮點數除以除數,編譯器會把兩個運算對象轉換成相同的類型。 24 */

運算符優先級:

運算符(優先級從高至低) 結合律
() 從左往右
+ -(一元) 從右往左
* / 從右往左
+ -(一元) 從左往右
= 從右往左

sizeof運算符和size_t類型:

 1 /*使用sizeof運算符*/
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int n=0;
 6     size_t intsize;
 7     
 8     intsize=sizeof(int);
 9     printf("n=%d,n has %zd bytes;all ints has %zd bytes.\n",
10             n,sizeof n,intsize);
11     return 0;
12  } 
13  /*
14  輸出樣例 
15  
16  n=0,n has 4 bytes;all ints has 4 bytes.
17  
18  */

求模運算符:

“%”是求模運算符,只能適用于整數,不能用於浮點數。

13%5=2(也可以理解%的意思是取餘數);

把秒數轉換成分和秒:

 1 #define SEC_PER_MIN 60
 2 int main()
 3 {
 4     int sec,min,left;
 5     
 6     printf("Convert seconds to minutes and seconds!\n");
 7     printf("Enter the number of seconds (<=0 to quit):\n");
 8     scanf("%d",&sec);
 9     while(sec>0)
10     {
11         min=sec/SEC_PER_MIN;//
12         left=sec%SEC_PER_MIN;//
13         printf("%d seconds is %d minutes, %d seconds.\n"
14                ,sec,min,left);
15         scanf("%d",&sec);
16     }
17     printf("Done!\n");
18     return 0;
19 }
20 /*
21 輸出樣例 
22 
23 Convert seconds to minutes and seconds!
24 Enter the number of seconds (<=0 to quit):
25 600
26 600 seconds is 10 minutes, 0 seconds.
27 59
28 59 seconds is 0 minutes, 59 seconds.
29 123
30 123 seconds is 2 minutes, 3 seconds.
31 695
32 695 seconds is 11 minutes, 35 seconds.
33 0
34 Done!
35 
36 */

遞增和遞減運算符(++   --)

遞增運算符:++是一個變量自己在原有的基礎上增加1。

有兩種形式:

num++:在使用num的值后加1。

++num:在使用num的值前加1。

遞減運算符遞增運算符使用方法相同。

 

 

 

 優化shoes2.c程序:

 

 

 

 

 

 總而言之,n++“先使用n,在遞增”,++n“先遞增,再使用n”。

标签:算符,division,表達式,一個,左值,int,printf
From: https://www.cnblogs.com/NoldorFromMiddleEarth/p/16996195.html

相关文章

  • T-SQL中的运算符
    --算数运算符SELECT3+4AS 加的结果GOSELECT5/2AS除的结果--2.5左右两边都是整数,结果是整数GOSELECT5.0/2AS除的结果 --两边......
  • 基本运算符
    基本运算符运算符Java语言支持如下运算符:算术运算符:+,-,*,/,%,++,--赋值运算符:=关系运算符:>,<,>=,<=,==,!=,instanceof逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>(了解!!!)条......
  • Python__08--运算符
    1常用运算符1.1算数运算符加(+)、减(-)、乘(*)、除(/)、整除(//)取余(%)测试代码:print(-9//-4)print(9//4)print(9//-4)print(-9//4)#一正一负向下取整......
  • Js运算符
      vara=5 a+=5表示a=a+5      ......
  • Python语法糖之解包运算符
    目录解包运算符*和**一个尴尬的场景可选解决方法可迭代对象解包(*运算符)例子字典解包(**运算符)本博客主要参考为北京大学陈斌老师的下一站Python解包运算符*和**......
  • 30python中列表-字典-字符串-三目运算符
    好文手敲下,每天码代码~加油三目运算符a=1b=2#a+b不大于3执行后面的else语句b-a=1print(a+bifa+b>3elseb-a)一、列表1.1列表的定义​ 白话来讲:放数......
  • EL-empty运算符&隐式对象pageContext、JSTL概述
    EL-empty运算符空运算符:empty功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0${emptylist}:判断字符串、集合、数组对象是否为null或者长度为0......
  • EL运算符、EL获取域中存储的值
    EL运算符运算符: 1.算数运算符:+-*/(div)%(mod) 2.比较运算符:><>=<===!= 3.逻辑运算符:&&(and)||(or)!(not) 4.空运算符:empt......
  • Python学习笔记--布尔类型和比较运算符、if判断语句以及相关案例的实现
    布尔类型和比较运算符代码:结果:主要有以下几类:注意:bool类型的真假表示开头必须大写,例如:True和False而要是想要得到布尔类型,除了直接定义,还可以通过比较运算得到布尔......
  • 拷贝构造,赋值运算符重载(六千字长文详解!)
    c++之类和对象详解拷贝构造,赋值运算符重载拷贝构造那在创建对象时,可否创建一个与已存在对象一某一样的新对象呢?==拷贝构造函数:只有单个形参,该形参是对本类类型对象的引......