浙江大学C颜晖原版C3课件
浙江大学C颜晖原版C3
C 程序的基本结构
• 顺序结构 • 选择结构 • 循环结构
浙江大学C颜晖原版C3
C 程序的基本结构
பைடு நூலகம்
• 顺序结构
语句1 ; 语句2 ; 语句3 ;
……..
语句1; 语句2;
冯.若依曼机工作原 理
——顺序执行
浙江大学C颜晖原版C3
例3-4 交换变量的值
对两个变量先输入两个值,然后交换这两个变量的值。
do {
算
scanf (“%d” , &x); /* 输入一个数 */
法
count ++;
/* 每输入一个数,记一下数 */
步
if (x>0)
/* 判断输入数〉0否 */
sum = sum + x; /* 是〉0,则加到累加和中 */
骤
} while ( count <100 ); /* 未输入完100个数,则重复 */
浙江大学C颜晖原版C3
C 程序的基本结构
• 顺序结构 • 选择结构
满足
不满足
条件?
语句1 ;
语句2 ;
条件
满足
不满足
语句1 语句2
浙江大学C颜晖原版C3
选择结构
例 输入变量x,计算y值。 1 当 x>=0
y= -1 当 x<0
main( ) {
int x, y;
scanf(“%d”,&x); if (x>0) y = 1; else y = -1; printf(“x=%d, y=%d”, x, y); }
if (n1>0){ for (i=0; i<n2; i++) b[i]=a2[i]; i=0; while (i<n1&&j<n2){ if (a1[i]>b[j]){ a2[k]=b[j]; j++; } else{ a2[k]=a1[i]; if (a1[i]==b[j]) j++; i++; } k++;
printf ( “%d” , sum );
/* 浙输江大出学累C颜加晖原和版C*3 /
C语句概述
C语言的五类语句 • 1 函数调用语句 • 2 表达式语句 • 3 空语句 • 4 复合语句 • 5 程序结构控制语句
C语言的所有语句必须以分号 ; 结束
浙江大学C颜晖原版C3
C语句概述
1 函数调用语句
scanf( ”%d%d”, &a , &b ); printf( "%d" , x );
2 表达式语句
x = 3; i++;
3 空语句
;
浙江大学C颜晖原版C3
C语句概述
• 4复合语句 { statement 1; statement 2; …… statement n; }
5 程序结构控制语句
条件控制(第四章) 循环控制(第五章)
浙江大学C颜晖原版C3
例3-1 算法描述 (流程图)
开始 输入一个数
流向线
该数 >0 N
起止框
Y 累加
处理框
输入完100个
N
数
Y
输出累加和
判断框
结束
浙江大学C颜晖原版C3
例3-1 算法描述(N-S流程图)
输 入 一 个 数
处理
该 数 〉 0
判断
满 足
不 满 足
加 到 累 加 和 中
输 入 完 1 0 0 个 数 否
满足
y=1
浙江大学C颜晖原版C3
x>0 不满足
y = -1
C 程序的基本结构
• 顺序结构 • 选择结构 • 循环结构
满足 条件?
不满足
重复执行的语句;
后一语句;
浙江大学C颜晖原版C3
循环结构
void main( ) {
int i, max, x;
i=9;
scanf("%d", &x)
max = x;
temp
y
浙江大学C颜晖原版C3
例3-4 交换变量的值
例 对两个变量先输入两个值,然后交换这两个变量的值。
x
步骤: 1 x -> temp 2 x <- y 3 temp->y
temp
y
浙江大学C颜晖原版C3
例3-4 交换变量的值
对两个变量先输入两个值,然后交换这两个变量的值。 main() { int x, y, temp; scanf(“%d%d”, &x, &y); temp = x; x = y; y = temp; printf(“first=%d, second=%d”, x, y); }
浙江大学C颜晖原版C3
算法与程序
• 程序=算法+数据结构 + 结构化程序设计方法 + 语言工具和环境
浙江大学C颜晖原版C3
例3-1
从键盘中输入100个整数,对其中的正整数进行累 加,最后输出结果。
算法描述(自然语言)
⑴ 输入一个数; ⑵ 如果该数 > 0,累加它; ⑶ 如果100个数没有输入完,转步骤(1); ⑷ 输入完100个数后,输出累加和。
• 思路清晰 • 书写清晰(变量名、函数名、注解等) • 书写使用阶梯形
浙江大学C颜晖原版C3
int merge(int a1[ ], int n1, int a2[ ], int n2) /* 把2个排好序的数组a1、a2归并到a2上 */ {
int i,j=0,k=0, b[10];
if (n2==0) for ( ; j<n1; j++,k++) a2[k]=a1[j];
重复
输 出 累 加 和
浙江大学C颜晖原版C3
算法的C语句实现
void main( ) {
int x; int count; int sum;
/* 存放输入数的单元 */ /* 存放输入个数的单元 */ /* 存放累加和的单元 */
作准 备 工
count = 0; sum = 0; /* 工作单元初值 */
while ( i > 0 ){
骤重 复 步
}
scanf (“%d”, &x); if ( x > max ) max = x; i --;
printf("max number is %d" ,max);
}
浙江大学C颜晖原版C3
C 程序的基本结构
• 结构化程序设计基本要求:
• 自顶向下,模块化设计; • 使用三种基本结构构造程序; • 程序书写规范,切勿随心所欲; • 清晰第一,效率第二。
Chap3 算法与c程序设计
• 算法 • C语句概述 • C 程序的基本结构
浙江大学C颜晖原版C3
算法
• 程序
用编程语言编写,完成特定功能的语句的集合。
• 编程步骤:
1. 明确问题
2. 问题
若干具体步骤(算法)
3. 算法
程序
4. 上机调试运行
• 算法
解题方法或解题步骤的精确描述 算法表示:文字描述、流程图和N-S流程图
x
temp
y
步骤:
1 x -> temp
浙江大学C颜晖原版C3
例3-4 交换变量的值
例 对两个变量先输入两个值,然后交换这两个变量的值。
x
temp
y
步骤: 1 x -> temp 2 x <- y
浙江大学C颜晖原版C3
例3-4 交换变量的值
例 对两个变量先输入两个值,然后交换这两个变量的值。
x
步骤: 1 x -> temp 2 x <- y 3 temp->y