2020年3月20日 星期五

C語言小教室-1

C語言小教室

前情提要:這裡會針對一些題目做解釋,紀錄我們一路寫程式的心路歷程.

題目一:(SOIT107_ADVANCE_003) 進階題:計算一列整數的總和 : 請撰寫一個程式計算並印出數個整數的加總。假設以999當成警示值。

看完題目後我們發現,999是一個界線,所以一讀到999這個數字就會停止加總.
接下來我們來看看程式碼 
#include <stdio.h>
   宣告主函式 
int main()
{
宣告a用來儲存數值,b用來儲存總加的數值(因此一開始要指定為零) 
int a,b=0;
這裡我們用for迴圈,來讀入數字,和輸出數值.
(使用for迴圈就可以輕鬆讀入很多個數值) 
for(int i=0;i<999;i++)
{
讀入當下a的數值
scanf("%d",&a);
接著開始判斷a是不是等於999
if(a==999) 如果
                {
printf("Enter an integer ( 999 to end ): \n");印出
break;
}
else 其他
{
b+=a;如果不等於999就要加入總加b=b+a(前面的寫法為簡寫)
printf("Enter an integer ( 999 to end ): \n");印出
}
}
printf("The total is: %d",b);最後在印出總加就好
最後輸入輸出是這樣
    
題目二: (SOIT107_ADVANCE_004) 進階題:最大公因數gcd : 輸入二整數 a b,輸出a b最大公因數
以上是輸入輸出

 看完題目後得知我們要找兩數的最大公因數,接下來用for迴圈來找,因為for迴圈可以把分別得數值一個一個帶進去試試看.
接下來看程式碼 

#include <stdio.h>
   宣告主函式 
int main()
{
 
宣告a和b用來儲存兩數. 
int a,b;
還有宣告ans來存放最大公因數 
int ans=0;
依題目要求先印出 Enter two integers: \n
printf("Enter two integers: \n");
讀入a和b的數值 
scanf("%d%d",&a,&b);
for迴圈if判斷找出最大公因數 
for(int i=1;i<a;i++)
{
如果i除以a和b都等於0的話答案(ans)就是(=)i 
if(a%i==0&&b%i==0)ans=i;
}
最後再印出答案就可以了 
printf("The greatest common divisor of %d and %d is %d\n",a,b,ans);
}
 最後輸入輸出是這樣

 
以上是今天的程式碼. 
 


沒有留言:

張貼留言