动手学习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来说,低级

发布了26 篇原创文章 · 获赞 2 · 访问量 776

猜你喜欢

转载自blog.csdn.net/li_kin/article/details/104634738