集成開發環境(IDE)windows
下載Dev C++的地方是:
http://sourceforge.net/projects/orwelldevcpp/?source=directory
提示:Dev C++只能在windows操做系統下安裝框架
因爲作c語言的編譯軟件的廠家不少,不一樣的廠家又有不一樣的方言。
所以咱們統一用Dev C++軟件(集成開發環境),在上面的地址下載默認安裝便可。編輯器
提示:Dev C+= 是一款集成開發環境的軟件,包括編輯器、編譯器、調試器和圖形用戶界面等功能。函數
程序框架測試
#include <stdio.h> int main(){ //你的代碼 return 0; }
輸出操作系統
第一個Hello World
程序.net
#include <stdio.h> int main(){ printf("Hello World!\n"); return 0; }
執行結果:設計
Hello World!
程序語句及符號3d
如何輸入
變量賦值和初始化
"="
是一個賦值運算符,表示將"="
右邊的值賦給左邊的變量。變量定義
變量的名字
「標識符」
,意思是它是用來識別這個和那個的不一樣的名字。賦值運算符"="
和數學的'"="'差別
初始化
變量初始化
變量類型
ANSI C
標準和C99
標準的定義變量的區別
ANSI C
只能在代碼開頭的地方定義變量。C99
在使用變量前定義變量便可。讀取整數
常量
C99
找零程序
假設有一個雜貨鋪,顧客有一張面額100的鈔票,要求設計一個程序給店主,輸入購買商品的總額並,而且計算出應該找零給顧客多少錢。
(假設金額都爲整數且商品總額小於100)
#include <stdio.h> int main(int argc, char *argv[]) { const int AMOUNT = 100; int change = 0; int price = 0; printf("請輸入金額(元):"); scanf("%d",&price); change = AMOUNT - price; printf("找您%d元。\n",change); return change; }
執行結果:
請輸入金額(元):98 找您2元。
附錄:C語言常見的保留字
auto,break,case,char,const, continue,default,do,double, else,enum,extern,float,for, goto,if,int,long,register,return, short,signed,sizeof,static, struct,switch,typedef,union, unsigned,void,volatile,while, inline,restrict
整數之間的運算
10/3
在c語言中的運行結果爲3
,c語言會自動抹掉小數後的部分(.3333...
)。10
和10.0
在C中是徹底不一樣的數10.0
是浮點數,10
是整數浮點數
double
「雙精度浮點數」
的第一個單詞,人們用來表示浮點數類型。整數和小數的輸入輸出
身高轉換程序
設計一個程序將英尺和英寸表達的升高轉換爲米表達,例如5英尺7英寸表示1.701800
米。
#include <stdio.h> int main(int argc, char *argv[]) { printf("請分別輸入身高的英尺和英寸," "如輸入\"5 7\"表示5英尺7英寸:"); double foot = 0; double inch = 0; scanf("%lf %lf",&foot,&inch); printf("身高是%f米。\n",((foot + inch / 12) * 0.3048)); return 0; }
執行結果:
請分別輸入身高的英尺和英寸,如輸入"5 7"表示5英尺7英寸:5 7 身高是1.701800米。
表達式
"+"
,減法運算符"-"
時間差計算程序
#include <stdio.h> // 計算第一個時間段和第二個時間以前的時間差,例如3點10分和1點30分 的時間差爲1個小時40分鐘 int main(int argc, char *argv[]) { int hour1, minute1; int hour2, minute2; printf("請輸入第一個時間,分別輸入小時和分鐘." "輸入\"3 10\"表示3點10分:"); scanf("%d %d", &hour1, &minute1); printf("請輸入第二個時間,分別輸入小時和分鐘." "輸入\"1 30\"表示1點30分:"); scanf("%d %d", &hour2, &minute2); int t1 = hour1 * 60 + minute1; int t2 = hour2 * 60 + minute2; int t= t1 - t2; printf("時間差是%d小時%d分。",t / 60, t % 60); return 0; }
執行結果:
請輸入第一個時間,分別輸入小時和分鐘.輸入"3 10"表示3點10分:3 10 請輸入第二個時間,分別輸入小時和分鐘.輸入"1 30"表示1點30分:1 30 時間差是1小時40分。
算術符優先級
賦值運算符
嵌入式賦值
int a = 6;
int b;
int c = 1 + (b = a);
不建議使用嵌入式賦值,由於嵌入式賦值有如下兩個缺點:
- 不利於閱讀
- 容易產生錯誤
結合關係
"+"
、"-"
和賦值"="
自右向左題目內容:
程序每次讀入一個正三位數,而後輸出逆序的數字。注意,當輸入的數字含有結尾的 0 時,
輸出不該帶有前導的 0。好比輸入 700,輸出應該是 7。
輸入格式:
每一個測試是一個 3 位的正整數。
輸出格式:
輸出逆序的數。
輸入樣例:
123
輸出樣例:
321
解題思路:
進一步分析,步驟三還須要作拆分。咱們知道一個三位數由個位、十位和百位組成,所以咱們須要作的就是將A的百位放到B的個位再將A的個位放到B的百位,最後獲得的就是A的倒序的一個三位數了,列如123
將百位和十位互調的結果就是321
。
3.將變量A逆序放入變量B
3.1 取A的百位放到B的個位。
3.2 取A的十位放到B的十位。
3.3 取A的個位放到B的百位。
反轉數字
#include <stdio.h> int main(int argc, char *argv[]) { int a; int b; printf("請輸入一個三位的整數:"); scanf("%d",&a); // 個位 + 十位 + 百位 b = a / 100 + a % 100 / 10 * 10 + a % 10 * 100; printf("%d\n",b); return 0; }
執行結果:
請輸入一個三位的整數:123 321
擴展思考:到這裏咱們的程序算是符號題目要求了,但它還不是一個健壯的、好的程序。試想當用戶輸入的不是整數而是小數結果會怎麼樣呢? 又或者用戶輸入的根本就不是數字呢? 而且咱們的程序只能反轉三位數,如何反轉四位數、五位數甚至n位數呢?
討論題
標題:很差的表達式
內容:
看看如何分析這個表達式:
a=5;
b=0;
c = (b=a+2) - (a=2);
看看這個表達式的結果,會使得 c 是什麼?爲何說這是個很差的表達式?
題目分析:
單目和賦值運算符自右向左,加、減、乘、除和取餘運算符自左向右。
所以c = (b=a+2) - (a=2)
表達式的計算順序爲:
爲何說嵌套賦值是不要的表達式呢?
咱們能夠試着把以上表達式拆分紅下面的表達式。
a = 5; b = a + 2; a = 2; c = b - a;
這樣是否是一目瞭然了呢?