2009年7月9日 星期四

C語言學習實錄之二

C語言學習實錄之二
(第二次上課)

第二次上課

終於慢慢切入了最重要的地方了

就是重複迴圈 for() while() 等等

在c語言中這些用法都和php差不多(別的語法也是...)

所以還蠻容易上手的

= =

首先就是for()迴圈的應用

for(起始值;判斷值是否進行;每次判斷值得改變){
do something
}

接下來是範例,要算出階層 就是 "!"

不過在這邊要注意的是,由於宣告的最後放結果的a,的長度只有31位元,正整數只能存放15位元
,所以如果輸入太大,則會出現"溢位"。

ex2-1

#include
#include
int main(void){
int i,a=1,n;
printf("請輸入皆層\n");
scanf ("%d",&n);
for(i=1;i<=n;i++){ //i起始值為一,每執行一次就加一,直到>n停止
a = a*i;
}
printf("=%d\n",a);
system("pause");
return 0;
}

接下來當然就是for()迴圈加強版摟!!

這邊主要差是在一次跳兩個數字,就變成偶數

ex 2-2

#include
#include
int main(void){
int i,a=0,n;
printf("請輸入偶數連加的最終值\n");
scanf("%d",&n);
for(i=2;i<=n;i=i+2){
a=a+i;
}
printf("%d\n",a);
system("pause");
return 0;
}


for()迴圈其實就差不多就這樣

如果想更詳細了解的話可以參考 php重複迴圈

for()迴圈基本上是大同小異,不過在寫法上還是有些差異


接下來就進入下一個主題

while()迴圈

這邊同樣可以參考 php重複迴圈

這個範例就直接是while()迴圈較深入的範例,用了兩個迴圈(當初就寫在一起了,忘了分開)

第一個是可以重複執行

第二個就是要計算所有整數的和

這邊有多一個指令 system("cls") 就是每執行一次就清除螢幕



ex2-3

#include
#include
int main(void){
int i,s,n;
char f='y'; // 宣告字元 f = 'y'
while(f == 'y' || f == 'Y') // 由於上述 所以可以執行以下
{
int i=1;s=0; //這邊要將i s 歸位,否則會錯誤(迴圈的變數值會保留,所以要重設)
printf("求1~N所有整數之和\n");
scanf("%d",&n);
while(i<=n) //第二個迴圈,用來計算
{
s=s+i;
i++;
}
printf("1~%d所有和為%d\n",n,s);
printf("如果繼續請案y\n");
scanf(" %c",&f); //輸入值給f,如果不是 'y' or 'Y' 則第一個while()不會繼續執行
//這邊在設定 %c時,前面要加一個空白,是告訴c,把"\n"(換行)清除掉,(c預設有換行)
system("cls");
}
system("pause");
return 0;
}



------------------------------------------------
本人將會把在巨匠學的程式範例和一些重點 PO 上來

放在"C語言學習實錄"分類

供大家參考

此次暑假預計學習的有

C++ 初階 (其實還是C語言)
C++ 進階
C++ 物件導向

歡迎大家觀賞 (顆顆)

也當作自己的學習紀錄吧!!
------------------------------------------------

沒有留言:

張貼留言