if分支選擇結構
- if(){} 結構;
- 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: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");
}
}
- 嵌套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來說,低級