iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 15
1
自我挑戰組

從0開始,一起學C語言吧!系列 第 15

從0開始,一起學C語言吧!(Day15)

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");
}

印出:
https://ithelp.ithome.com.tw/upload/images/20190914/20119958hyWU1FBqhd.png
解釋:第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;
}

印出:
https://ithelp.ithome.com.tw/upload/images/20190914/20119958l7ZsvEL7iD.png
解釋:這題它利用到兩層for迴圈並用%取餘數,檢查是否為質數,那如過是因數不是質數flag值會被設定為0,如過不是因數是質數flag值會被設定為1,並且印出質數的值
那今天就先到這啦!!
謝謝大家今天的閱讀!!


上一篇
從0開始,一起學C語言吧!(Day14)
下一篇
從0開始,一起學C語言吧!(Day16)
系列文
從0開始,一起學C語言吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言