控制結構(-)spa
相信你們對流程圖確定很熟悉。下面我將介紹的正是關於此方面的,c語言中,控制結構大致分爲選擇結構和循環結構。code
一.選擇結構:blog
先貼出通常用於選擇結構的語法知識:排序
1:數學
#include<stdio.h> //第一種 int main() { if() { } }
2:io
#include<stdio.h> //第二種 int main() { if() //若是括號內的條件知足,則進行if下面的操做 { } else//不然,則進行else下面的操做 { } }
3:class
#include<stdio.h> //第三種 int main() { if() //若是if括號內的條件知足,則進行if下面的操做,如不知足則跳過這一語句 { } else if()//若是else if括號內的條件知足,則進行else if下的操做 { } else//若是上面兩個語句都不知足,則進行else 內的操做 { } }
或許這樣看有些虛幻。變量
仍是例題說着方便,下面就用例題來解釋吧。隨機數
從鍵盤上輸入三個數,找出其中最大的一個數。循環
畫一個流程圖出來,很容易就能得出,但是如何用C語言程序來表示這個流程圖??
#include<stdio.h> int main() { int a,b,c;//定義了三個整數類型的變量 scanf("%d%d%d",&a,&b,&c);//從鍵盤輸入三個數 /*如今假設a是最大值,分別與b,c比較,若是a<b,吧b的值賦值 給a,如今a就是a與b中的最大值,同理,與c比較,可得三個數的最值。 */ //須要注意的是:c語言中的等號不是」=「,而是」==「 //」=「,在c中是賦值的意思,即把右邊的值,賦值給左邊 if(a<b) a=b; if(a<c) a=c; printf("%d",a); }
運行結果:
此程序雖然比較簡單,可是它是有缺點的,如過a不是最大的,b或者c均可能會把它們的值給a,那麼a之前的值是什麼呢?
此時,電腦已經不知道了,由於你用了賦值語句把a之前的值覆蓋了,不信能夠試試。
#include<stdio.h> int main() { int a,b,c;//定義了三個整數類型的變量 scanf("%d%d%d",&a,&b,&c);//從鍵盤輸入三個數 /*如今假設a是最大值,分別與b,c比較,若是a<b,吧b的值賦值 給a,如今a就是a與b中的最大值,同理,與c比較,可得三個數的最值。 */ //須要注意的是:c語言中的等號不是」=「,而是」==「 //」=「,在c中是賦值的意思,即把右邊的值,賦值給左邊 if(a<b) a=b; if(a<c) a=c; printf("%d\n",a); printf("%d %d %d\n",a,b,c);//輸出如今a,b,c的值
}
運行結果:
那麼,還有沒有其餘的方法呢?固然有。如今就列舉出以下幾種方法,不改變a,b,c的值,可是同時又能找到a,b,c中的最值。
方法一:
#include<stdio.h> int main() { int a,b,c,d;//增長了一個d變量 scanf("%d%d%d",&a,&b,&c);//從鍵盤輸入三個數 /*如今假設d是最大值,分別與a,b,c比較較,可得三個數的最值。 先要讓d等於a,b,c三個數當中的某一個值,由於在定義時,a,b,c,d 都會被隨機的賦予一個隨機值,而後咱們又從鍵盤裏輸入值,給了a,b,c; 可是d仍是一個隨機數。這個隨機數可能比a,b,c都要大。 */ d=a; if(d<b) d=b; if(d<c) d=c; printf("%d\n",d); printf("%d %d %d\n",a,b,c);//輸出如今a,b,c的值 return 0; }
運行結果:
方法二:
#include<stdio.h> int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); //從鍵盤輸入三個數 if(a>b&&a>c) //若是a既比b大,又比c大,輸出a { printf("%d\n",a); } if(b>a&&b>c) //若是b既比a大,又比c大,輸出b { printf("%d\n",b); } if(c>a&&c>b) //若是c既比a大,又比b大,輸出c { printf("%d\n",c); } printf("%d %d %d\n",a,b,c); //輸出a,b,c return 0; }
運行結果,能夠試一下與上面的運行結果是同樣的
從上面的代碼中,能夠看到一個陌生又並不陌生的符號「&&」。 或許一個「&」,看到會很熟悉,它是取地址符,能夠在scanf中用到。可是兩個「&」,是什麼意思呢? 它是數學中的且,即「&&」符號兩邊的式子都要同時知足,而後總體才知足。與「&&」對應的符號是「||」,即數學中的或,它表示在「||」兩邊的式子有一個知足就能夠。
方法三:
#include<stdio.h> int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c);//從鍵盤輸入三個數 if(a>b) //若是a比b大 { //若是a比c大,輸出a if(a>c) printf("%d\n",a); } if(b>a) //若是b比a大 { //若是b比c大,輸出b if(b>c) printf("%d\n",b); } if(c>a) //若是c比a大 { //若是c比b大,輸出c if(c>b) printf("%d\n",c); } printf("%d %d %d\n",a,b,c); //輸出a,b,c return 0; }
一樣,運行結果是同樣的,可是咱們能從上面學到什麼呢?從上面能夠看到,if語句裏面還有一個if,用來補充上面的條件.由此可知if語句是能夠嵌套使用的。
看了上面的,應該會對判斷語句有一個更深刻的理解。能夠作其餘的一些例題了。
上機練習:1.從鍵盤上輸入a,b,c。對a,b,c,進行從大到小排序。運行結果以下。
2.從鍵盤上輸入五個數,找到其中的最大值和最小值,並輸出.