C语言分支结构

库函数

概念:C语言处理系统提供事先编好的函数,
供用户在编程时调用。
它们通常通过头文件(.h文件)定义。

使用#include命令加载头文件,从而引用库函数

输入输出库stdio.h

数学库math.h

输入输出库(stdio.h)函数

1

printf
格式化输出函数

/**
* @name printf
*
* @description 输出函数,在console界面上将对象内容输出

* printf(格式控制字符串, 输出参数1, … , 输出参数n);

* @param {string} 格式控制字符串,控制输出的格式。其语法规则如下:

* %d,以整型的形式输出参数,

* %f,以浮点型的形式输出参数,

* %s, 以字符的形式输出参数,

* 其他字符,原样输出*

* @param {object} 要显示的输出参数,可以是各种类型的变量,可以有多个
*/

r

/** * @name printf * @kind function * * @description 输出函数,在console界面上将对象内容输出 * * @param {string=} 格式控制字符串,控制输出的格式。其语法规则如下: * %d,以整型的形式输出参数, * %f,以浮点型的形式输出参数, * %s, 以字符的形式输出参数, * 其他字符,原样输出* * @param {object} 要显示的输出参数,可以是各种类型的变量,可以有多个 * * @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; * @example * printf("%s\n", "hello world"); * 结果为:hello world; * @example * printf("hello world\n"); * 结果为:hello world; */

@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;

2

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

3

putchar
单个字符输出函数

/**
* @name putchar
* @description 输出一个字符

* putchar(输出参数);

*

* @param {object} 单个字符变量

*/

* @example
* putchar ('?');
* 输出:?

4

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-else语句

例题

例题

单个if语句

单个if语句

控制语句的特性

控制语句的特性

花括号的意义

花括号的意义

多个if-else并列使用

例:将百分制转换成5级制

例:将百分制转换成5级制

多个if-else嵌套使用

例

switch语句

通常的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的情况

没有break的情况

例

输入10个字符,分别统计出其中空格或回车、数字和其他字符的个数。

#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);

}