选择分支结构
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来说,低级