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語言循環語句用法
C語言循環語句用法有三種主要形式:
1. for()循環
2. while()循環
3. do {} while();循環
for()循環用法:
for( e1 ; e2 ; e3 ) //注意三個區域間用分號來分隔,而不是逗號!!
{
for_statements ; //多條語句用{}括起來,單條語句可以不用,建議也使用,一:代碼清楚,二:便于查錯。 其它循環也是這樣。
}
//說明:
//e1:變量初始化區,只執行一次
//e2:循環控制區,每次都要先檢查e2表達式的結果是否為真,為真則進入循環區,否則,結束循環
//e3:循環變量變化區,每次執行完for_statements ;則轉到這里,執行e3,然后轉到e2
例:
int i;
for( i=0; i<10; i++ )
{
printf("%d ", i );
}while()循環用法:
循環控制變量初始化
while(e)
{
while_statements ; //包括循環控制變量 變化
}
//說明:
//e 循環控制條件,e為真則進入循環區,否則,結束循環 執行完while_statements ;后轉到這里繼續判斷
例:
int i;
i=0;
while( i<10 )
{
printf("%d ", i );
i++; //循環控制變量變化
}do {} while();循環用法:
do {
do_while_statements ; //包括循環控制變量 變化
} while(e); //注意尾部有分號
//說明:
//與while()不同的是,這里可以沒有循環變量的初始化,先進行循環語句的操作,然后,再判斷是否繼續進行,所以,這種循環,至少要執行一次do_while_statements ;而前兩種,有可能一次都不執行循環語句。
例:
int i;
do {
printf("input number " );
scanf("%d", &i ); //循環控制變量 變化
printf("%d\n", i );
} while ( i<10 );
到這里,一定能得到一個大于10的i. 一般我們在要求輸入一個數據必須符合規定時,這樣寫代碼。
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;
}