C语言分支结构
库函数
概念:C语言处理系统提供事先编好的函数,
供用户在编程时调用。
它们通常通过头文件(.h文件)定义。
使用#include命令加载头文件,从而引用库函数
输入输出库stdio.h
数学库math.h
输入输出库(stdio.h)函数
printf
格式化输出函数
/**
 * @name  printf
 *
 * @description 输出函数,在console界面上将对象内容输出
 *                       printf(格式控制字符串, 输出参数1, … , 输出参数n);
 * @param {string} 格式控制字符串,控制输出的格式。其语法规则如下:
 *                 %d,以整型的形式输出参数,
 *                 %f,以浮点型的形式输出参数,
 *                 %s, 以字符的形式输出参数,
 *                 其他字符,原样输出*
 * @param {object} 要显示的输出参数,可以是各种类型的变量,可以有多个
 */
@example
 *     printf("%s\n", "hello world");
 *     结果为:hello world;
@example
 *     printf("hello world\n");
 *     结果为:hello world;
@example
 *     a=100, b=37;
 *     printf("fahr = %d, celsius = %d\n", a, b);
 *     结果为:fahr=100, celsius=37;
@example
 *     a=3, b=a*a;
 *     printf("%d=%d*%d, b, a, a);
 *     结果为:9=3*3;
scanf
格式化输入函数
/**
 * @name scanf
 * @kind function
 *
 * @description 输入函数,允许用户输入数据
 *              scanf(格式控制字符串, 输入参数1, … , 输入参数n);
 *
 * @param {string=} 格式控制字符串,语法规则与printf一样
 * @param {object} 要显示的输入参数,可以是各种类型的变量,可以有多个
                                 参数前必须加&符号,代表引用
 */
* @example
 *     scanf("x=%lf", &x);
 *     输入: x=9.5
@example
 *     scanf("%d%d%lf", &money, &year, &rate);
 *     输入:1000  3  0.025
putchar
单个字符输出函数
/**
 * @name putchar
 * @description 输出一个字符
 *              putchar(输出参数);
 *
 * @param {object} 单个字符变量
 */
* @example
 *     putchar ('?');
 *     输出:?
getchar
单个字符输入函数
/**
 * @name getchar
 * @description 输入一个字符
 *              getchar();
 */
* @example
 *     char ch; ch = getchar ();
 *     输入一个字符
数学库函数
例子
#include<stdio.h>
#include<math.h>
int main(void){
	float money, rate, sum;
	int year;
	printf("请依次输入金钱、利率、年份,注意年份不能是小数\n");
	scanf("%f%f%d",&money, &rate, &year);
	
	sum = money * pow((1+rate), year);
	
	printf("经过计算,存款总额为%.2f", sum);
	return 0;
}
分支结构
if-else语句

一般的if-else语句
例题


单个if语句
控制语句的特性
花括号的意义
多个if-else并列使用

例:将百分制转换成5级制
多个if-else嵌套使用
例
switch语句

通常的switch语句
例题
#include <stdio.h>
int main(void){  
    int choice;  
    double price; 
    printf("[1] 薯片\n");
    printf("[2] 爆米花\n");
    printf("[3] 巧克力\n");
    printf("[4] 可乐\n");
    printf("[0] 退出 \n"); 
    printf("请问你要查询哪种商品?请输入数字 ");
    scanf("%d", &choice);
    
	if(choice != 0){
		switch (choice) {         
	        case 1: price=3.0; break;
	        case 2: price=2.5; break;
	        case 3: price=4.0; break;
	        case 4: price=3.5; break;
	        default: price=0.0; break;
	    }
	     printf("此物价格 = %0.1f\n", price);
	}else
    	printf("谢谢查询 \n"); 
}

没有break的情况

例
输入10个字符,分别统计出其中空格或回车、数字和其他字符的个数。undefinedundefined
#include<stdio.h>
int main(void)
{  int blank, digit, i, other;  char ch;                          
   blank = digit = other = 0; i=1; 
   printf("Enter 10 characters: ");
   while( i <= 10){
       ch = getchar();
       switch (ch){
           case ' ' :  
           case '\n': 
		       blank ++;  
			break; 
           case '0' : case '1' : case '2' : case '3' : case '4' :
           case '5' : case '6' : case '7' : case '8' : case '9' :  
               digit ++; 
               break;
           default:
               other ++;
               break;
       }  
       i++; 
   }
   printf("blank=%d, digit=%d, other=%d\n", blank, digit, other);
}
