動手學習C語言-S5選擇分支結構

if分支選擇結構

  1. if(){} 結構;
  2. if(){} else {} 結構;
// 判斷是否爲閏年;
#include"stdio.h" 
void main(){
	int year;
	puts("輸入年份:");
	scanf(“%d”,&year);
	if(year%400==0 ||(year%4==0 && year %100!=0)){
		printf("yes \n");
	}
	else{
		printf"NO \n"');
	}
}
  1. 嵌套1:if(){} elseif(){} … else{}結構;
    else總是與if匹配

// 符號函數

// 判斷鍵盤字符
// 判斷輸入字符是什麼
#include "stdio.h"
void main(){
	char c;
	char str[] = "輸入一個鍵盤字符";
	puts(str);
	c = getchar();
	if(c<32){
		printf("is control char \n");
	}
	else if(c>'0' && c<'9'){
		printf("is digital char \n");
	}
	else if(c>'A' && c<'z'){
		printf("is char \n");
	}
	else{
		printf("others \n");
	}

}
  1. 嵌套2:if…else 結構;
    else總是與最近的if相匹配

switch~case 條件選擇結構

例題

代碼實現:

// 編寫程序,實現求解一元二次方程 

#include "stdio.h"
#include "math.h" // 包含數學頭文件

void solution(int a,int b,int c);

void main(){
	int a,b,c ;
	char str[] ="輸入a,b,c";
	puts(str);
	scanf("%d,%d,%d",&a,&b,&c);  //數據類型得對應
	solution( a,b,c);

}


void solution(int a,int b,int c){
	int flag ;
	float disc;
	float ans = 0;
	float ans1 =0;

	disc = (b*b)-(4*a*c);

	if(a==0){
		if(b==0){
			flag = 0;
		}
		else {
			flag = 1;
		}
		
	}
	else if(disc==0){
		flag = 2;
	}
	else if(disc>0){
		flag =3;
	}
	else{
		flag =0;
	
	}
	
	printf("disc is %f \n",disc);
	
	switch(flag){
		
	case 0: 
		printf("NO answer \n");
		break;
	case 1:
		printf("one is %f\n",ans=-(c/b));
		break;
	case 2:
		printf("one is %f \n",ans=0);
		break;
	case 3:
		printf("one is %f,the other is %f \n",ans=-(disc/(2*a)),ans1 = (disc/(2*a)) );
		break;
	default:
		break;

	}

} 

注意數據類型的對應,沒有做到讓程序員專注於問題的解決還要額外付出精力去看代碼格式,所以相比Python來說,低級

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章