c語言 for循環語句 if語句
#include
#include
main()
{
int x[28];
int d,d1,d2,d3;
int i,flag;
float sum=0;
for (i=0;isrand((unsigned)time(NULL)); // 每次計算都隨機則要此句
while (1){
d1=rand() % 10; d2=rand() % 10; d3=rand() % 10; // 取3個隨機數
d = d1+d2+d3; // 之和
x[d]=x[d]+1; // 此數個數增1
flag = 1;
for (i=0;iif (flag==1) break; // 成功
}
// 輸出 0-27 各數出現次數
for (i=0;ifor (i=0;iprintf("\n");
// 輸出 0-27 各數出現次數的百分比(概率)
for (i=0;ireturn 0;
}
c語言for循環嵌套if語句
兩種方法,一種是重新賦值,程序段如下
for(i=0;i<Maxi;i++)
for(j=0;j<Maxj;j++)
if(true)
{
i=-1;
break; //從此處跳出本層循環,由于賦值i=-1,執行完
//break語句之后,執行外層循環i++指令,使得
//i=0;外層循環相當于重新開始,j的值無需處理,
//因每次進入內層循環,j值均會被for語句賦初值0
}
第二種方法是無條件轉移指令:
sign: for(i=0;i<Maxi;i++)
for(j=0;j<Maxj;j++)
f(true) goto sign; //條件為真跳轉至sign語句
一般情況下,應當避免使用goto無條件跳轉指令,因為很多人認為程序可讀性會因為goto的引入而變差,但是在不少情況下goto可以使得程序代碼簡單,效率提高,個人認為適當使用goto指令并無不可,樓主可自己作出選擇。
c語言中能不能只用if語句實現循環?如何用if語句實現循環?以下面這
基本概念學得不扎實啊。
程序設計的三種基本結構:順序,條件,循環。
如果非要用if來做,可以寫個遞歸的函數來求階乘:
#include <stdio.h>
int F(int n)
{
if (n<=1)
return 1;
else
return n * F(n-1);
}
int main()
{
printf("%d\n", F(5));
return 0;
}
c語言if else嵌套for循環語句為什么會無限循環
int
main ()
{
int i, j, n;
printf ("Enter matrix size: ");
scanf ("%d", &n);
for (j = 1; j {
for (i = 1; i {
if (j == 1 || i >j - 1)//j=1 是賦值的意思.
{
printf ("+\t");
}
else
{
printf ("-\t");
}
}
printf ("\n");
}
//getchar ();
return 0;
}
? ~ vim zhid.c
? ~ indent -gnu zhid.c
? ~ vim zhid.c
? ~ gcc zhid.c
? ~ ./*
Enter matrix size: 4
+ + + +
- + + +
- - + +
- - - +
c語言中if可以嵌套哪些語句
學習C語言在初學C語言時,可能會遇到有些問題理解不透,或者表達方式與以往數學學習中不同(如運算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完后面的章節知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺,大多學不好的就是因為一開始遇到困難就放棄,曾經和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎么說自己聽不懂呢?相應的根本就沒學習,又談何學的好? 學習C語言始終要記住“曙光在前頭”和“千金難買回頭看”,“千金難買回頭看”是學習知識的重要方法,就是說,學習后面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。
學習C語言就是要經過幾個反復,才能前后貫穿,積累應該掌握的C知識。 那么,我們如何學好《C程序設計》呢? 一.學好C語言的運算符和運算順序 這是學好《C程序設計》的基礎,C語言的運算非常靈活,功能十分豐富,運算種類遠多于其它程序設計語言。
在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。
在學習中,只要我們對此合理進行分類,找出它們與我們在數學中所學到運算之間的不同點之后,記住這些運算也就不困難了,有些運算符在理解后更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。 先要明確運算符按優先級不同分類,《C程序設計》運算符可分為15種優先級,從高到低,優先級為1 ~ 15,除第2、3級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算符的運算順序. 二.學好C語言的四種程序結構 (1)順序結構 順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如;a = 3,b = 5,現交換a,b的值,這個問題就好像交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那么正確的程序為: c = a; a = b; b = c; 執行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。 順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。
不過大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環結構中的循環體等。 (2) 分支結構 順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。
對于要先做判斷再選擇的問題就要使用分支結構。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。
分支結構的程序設計方法的關鍵在于構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。分支結構適合于帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然后根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易于理解。
程序流程圖是根據解題分析所繪制的程序執行流程圖。 學習分支結構不要被分支嵌套所迷惑,只要正確繪制出流程圖,弄清各分支所要執行的功能,嵌套結構也就不難了。
嵌套只不過是分支中又包括分支語句而已,不是新知識,只要對雙分支的理解清楚,分支嵌套是不難的。下面我介紹幾種基本的分支結構。
①if(條件) { 分支體 } 這種分支結構中的分支體可以是一條語句,此時“”可以省略,也可以是多條語句即復合語句。它有兩條分支路徑可選,一是當條件為真,執行分支體,否則跳過分支體,這時分支體就不會執行。
如:要計算x的絕對值,根據絕對值定義,我們知道,當x>=0時,其絕對值不變,而x=0時,方程有兩個實根,否則(b^2-4ac=0) {x1=(-b+sqrt(d))/2a; x2=(-b-sqrt(d))/2a; printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2); } else {r=-b/(2*a); i =sqrt(-d)/(2*a); printf(“x1=%8.4f+%8.4fi\n”r, i); printf(“x2=%8.4f-%8.4fi\n”r,i) } ③嵌套分支語句:其語句格式為: if(條件1) ; else if(條件2) else if(條件3) …… else if(條件n) else 嵌套分支語句雖可解決多個入口和出口的問題,但超過3重嵌套后,語句結構變得非常復雜,對于程序的閱讀和理解都極為不便,建議嵌套在3重以內,超過3重可以用下面的語句。 ④switch開關語句:該語句也是多分支選擇語句,到底執行哪一塊,取決于開關設置,也就是表達式的值與常量表達式相匹配的那一路,它不同if…else 語句,它的所有分支都是并列的,程序執行時,由第一分支開始查找,如果相匹配,執行其后的塊,接著執行第2分支,第3分支……的塊。