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,並且印出質數的值
那今天就先到這啦!!
謝謝大家今天的閱讀!!