Day15-綜合練習
那今天要公布上一篇小試身手的解答,如下;
#include<stdio.h>
#include<stdlib.h>
int main(void){
int i, j, k;
for(i=1;i<6;i++){
for(j=5-i;j>0;j--){
printf(" ");
}
for(k=0;k<i;k++){
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}
好!
那我們就開始今天的練習吧
範例1: 兩數的最大公因數和最小公倍數
#include<stdio.h>
#include<stdlib.h>
int main(void){
int a, b,i,M=0,m=0;
printf("請輸入兩個正整數:");
scanf("%d %d",&a,&b);
for(i=1;i<a && i<b;i++){
if(!(a%i) && !(b%i))
M=i;
}
printf("%d和%d之最大公因數 %d\n",a,b,M);
i=a<b?a:b;
while(1){
if(!(i%a) && !(i%b) ){
m=i;
break;
}
i++;
}
printf("%d和%d之最小公倍數 %d\n",a,b,m);
system("pause");
}
印出:
解釋:第12行用到了三元運算子(不知道大家還記不記得那我幫大家複習一下!!)
三元運算子是由問號和冒號所組成,他的用法為當條件判斷式成立時,執行冒號前的運算式,那當條件判斷式不成立時,執行冒號後的運算式
這樣複習大家有記起來了嗎???!!!
範例2:印出1-100之間的所有質數
#include<stdio.h>
#include<stdlib.h>
int main(void){
int i;
for(i=2;i<101;i++){
int j,flag=1;
for(j=2;j<i;j++){
if(!(i%j)) flag=0;
}
if(flag)
printf("%d是質數\n",i);
}
system("pause");
return 0;
}
印出:
解釋:這題它利用到兩層for迴圈並用%取餘數,檢查是否為質數,那如過是因數不是質數flag值會被設定為0,如過不是因數是質數flag值會被設定為1,並且印出質數的值
那今天就先到這啦!!
謝謝大家今天的閱讀!!