根據C Primer Plus第五章進行學習
文章目錄
- 循環簡介
- 基本運算符
- 1.賦值運算符:=
- 2.加法運算符:+
- 3.減法運算符:-
- 2.乘法運算符:*
- 總結
1.循環簡介
? ? ? ? 如下代碼可以體現不使用循環的局限性:
#include<stdio.h>
#define ADJUST 7.31
int main()
{const double SCALE=0.333;double shoe,foot;shoe=9.0;foot=SCALE*shoe+ADJUST;printf("Shoe size (men's) foot length\n");printf("%10.1f %15.2f inches\n",shoe,foot);return 0;
}
(1)while循環
#include<stdio.h>
#define ADJUST 7.31
int main()
{const double SCALE=0.333;double shoe,foot;printf("Shoe size (men's) foot length\n");shoe=3.0;while(shoe<18.5){foot=SCALE*shoe+ADJUST;printf("%10.1f %15.2f inches\n",shoe,foot);shoe=shoe+1.0; }printf("If the shoe fits,wear it.\n");return 0;
}
當 shoe<18.5
()中的內容就是要被重復的內容。花括號以及被花括號括起來的部分被稱為塊(block)。該循環一直持續到shoe=19.0。
?2.基本運算符
1.賦值運算符:=
bmw=2002;
把值2002賦給變量bmw。也就是說,=左側為一個變量名,右側是賦給該變量的值。賦值行為從右往左進行。
i=i+1;
該語句的意思是:找出變量i的值,把該值+1,然后賦給i。
在C語言中,2002=bmw;
類似這樣的語句沒有意義。因為在這里,2002被稱為右值,只能是字面常量,不能給變量賦值,常量本身就是它的值。=左側必須是一個變量名。
2.加法運算符:+
printf("%d",4+20);
打印的是24,而不是4+20。
int ex;
int why;
int zee;
const int TWO=2;
why=42;
zee=why;
ex=TWO*(why+zee);
? ? ? ? 這里,ex、why和zee,都是可修改的左值,它們可用于賦值運算符的左側和右側。TWO是不可修改的左值,它只能用于賦值運算符的右側。42是右值,它不能引用某指定內存位置。另外,why和see是可修改的左值,表達式(why+zee)是右值,該表達式不能表示指定內存位置。
3.減法運算符?:-
下面語句表示把200.0賦給num:
num=224.0-24.0;
4.乘法運算符:*
#include<stdio.h>
int main()
{int num=1;while(num<21){printf("%4d %6d\n",num, num*num);num=num+1.0; }return 0;
}
該程序打印數字1~20及其平方。
(1)指數增長?
一位統治者獎勵學者,學者指著棋盤說,在第1個方格放1粒小麥,第2個放2粒,第3個放4粒,第4個放8粒,以此類推。下列程序計算出每個方格放幾粒小麥。并計算了總數。
#include<stdio.h>
#define SQUARES 64
int main()
{const double CROP=2E16;double current,total;int count=1;printf("square grains total ");printf("fractions of \n");printf(" added grains ");printf("world total\n"); total=current=1.0;printf("%4d %13.2e %12.2e %12.2e\n",count,current,total,total/CROP);while(count<SQUARES){count=count+1;current=2.0*current;total=total+current;printf("%4d %13.2e %12.2e %12.2e\n",count,current,total,total/CROP); }return 0;
}
下節繼續學習基本運算符,加油!?