C程序设计教程(中)清华PPT课件
合集下载
谭浩强C程序设计第三版清华课件第4章简单程序

21
4.5 格式输入与输出
(1) d格式符。用来输出十进制整数。
几种用法: ① %d:按十进制整型数据的实际长度输出。 ② %md:m为指定的输出字段的宽度。如果数据的位数小于m,
则左端补以空格,若大于m,则按实际位数输出。 例: printf(″%4d,%4d″,a,b);
若a=123,d=12345,则输出结果为 123,12345 ③ %ld:输出长整型数据。 例: long a=135790;/* 定义a为长整型变量*/ printf(″%ld″,a);
9
4.2 赋值语句
•赋值语句是由赋值表达式加上一个分号构成 例:a=100 赋值表达式
a=100; 赋值语句
•条件中不能含有赋值符号,但是赋值表达式可以
包含于条件表达式中
例:if(a=b)
t=a;
错误
if((a=b)>0) t=a;
正确
C程序设计(第三版)
10
4.2 赋值语句
问题:c语言中的赋值语句于其他高级语言 的赋值语句有什么不同点
C程序设计(第三版)
13
4.3 数据输入输出的概念及在C 语言中的实现
(三).在使用系统库函数时,要用预编译命令 “#include”将有关的“头文件”包括到用户源 文件中.
例如:在调用标准输入输出库函数时,文件开头应
该有:
头文
件
#include “stdio.h”
或:
#include <stdio.h>
右侧,左补空格。 ⑤ %-m.ns,n个字符输出在m列的左侧,右补空格,若n〉m,m自
动取n值。
C程序设计(第三版)
28
4.5 格式输入与输出
C语言程序设计_课件_第六章(适于清华谭浩强版)

int data[5]={1,2,3,4,5};
注意
(1) 允许初始化一部分元素,而不是全部。 int data[5]={1,2}; (2) 初始化数组时,允许省略数组的长度。 int data[]={1,2,3,4,5}; 与int data[5]={1,2,3,4,5};是完全等价的。 (3) 初始化数组时,不能对整个数组初始化。 例如,int data[5]=1;
程序段一: #Байду номын сангаасefine Size 5 main() { int a[Size],b[Size+10]; /*正确 … } 程序段二: main() { int n=5; int data[n]; /*错误 …… }
*/
*/
6.2.2 一维数组的引用 引用数组单元的一般形式为: 数组名[下标] 数组下标可以是整型变量或整型表达式, 但不能是浮点型的变量或浮点型表达式;并且 下标不能大于[数组长度-1],因为超过部分没 有被定义过,是不能正确使用的。 图。 例如:data[4]、data[i+j]、data[i++]都是 合法的引用方式。
地址二维数组在概念上是二维的,可以说 是数组的数组,二维数组的下标在行和列两个方 向变化。但是,计算机的内存是连续编址的,也 就是说存储器单元是按一维线性排列的。那么, 如何按照地址的顺序存放二维数组呢?一般有两 种方式来存储二维数组,第一种称为按行排列, 方法是先存储完第一行中的每个元素,再存放下 一行的每个元素;第二种称为按列排列,方法是 先存储完第一列中的每个元素,再存放下一列的 每个元素。C语言的编译系统采用按行排列。
每个数组在使用之前都需要定义。 定义数组的语法是: 数据类型说明符 数组名[数组长度];
C++语言程序设计(清华大学)ppt课件

引用 必须先声明,后使用。 只能逐个引用数组元素,而不能一次引用整个数组 例如:a[0]=a[5]+a[7]-a[2*3]
4
例6. 1一维数组的声明与引用
数 #include <iostream>
组
using namespace std;
int main()
{int A[10],B[10];
int i;
指 指针名=地址
针
“地址”中存放的数据类型与指针类型必须相符。
向指针变量赋的值必须是地址常量或变量,不能是普通整数。但可 以赋值为整数0,表示空指针。
指针的类型是它所指向变量的类型,而不是指针本身数据值的类型, 任何一个指针本身的数据值都是unsigned long int型。
允许声明指向 void 类型的指针。该指针可以被赋予任何类型对象 的地址。
Point(id Move(int x,int y);
int GetX() {return X;}
int GetY() {return Y;}
private:
int X,Y;
};
#endif
24
//6-2.cpp
#include<iostream>
变量 j
声明 例:static int i; static int *i_pointer=&i;
指向整型变量的指针
3010
2000
变量 i_pointer
引用 例1:i=3; 例2:*i_pointer=i;
i_pointer 2000
*i_pointer
3
i
2000 29
指针变量的初始化
指 语法形式
对形参数组的改变会直接影响到实参数17例62使用数组名作为函数参数主函数中初始化一个矩阵并将每个元素都输出然后调用子函数分别计算每一行的元素之和将和直接存放在每行的第一个元素中返回主函数之后输出各行元素的和
C语言程序设计清华大学郑莉PPT课件

象 的 方 法
第18页/共702页
面向对象的基本概念
面 — — 多 态 性 • 多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行 向 为 。 这 使 得 同 一 个 属 性 或 行 为 在 一 般 类 及 其 各 个 特 殊 类 中 具 有 不 同 的 语 义 。
• 例如:
对 数 的 加 法 - > 实 数 的 加 法 象- > 复 数 的 加 法 的 方 法
第19页/共702页
面向对象的软件工程
面 • 面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括 : 向 • 面向对象的分析(OOA) 对 • 面向对象的设计(OOD)
• 面向对象的编程(OOP)
面向对象的语言
计 算 机
语 言 的
发 展
• 出发点: • 更直接地描述客观世界中存在的事物(对象)以及它们之间的关 系。
• 特点: • 是高级语言。 • 将客观事物看作具有属性和行为的对象。 • 通过抽象找出同一类对象的共同属性和行为,形成类。 • 通过类的继承与多态实现代码重用
第5页/共702页
程序设计方法的发展历程
面 — — 面 向 对 象 的 方法 • 将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体 ——对象。 向 • 对同类型对象抽象出其共性,形成类。 对 • 类通过一个简单的外部接口,与外界发生关系。 象 • 对象与对象之间通过消息进行通讯。
的 方 法
第11页/共702页
向 • 是现实世界中一个实际存在的事物。
• 可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)。
对 • 是构成世界的一个独立单位,具有:
第18页/共702页
面向对象的基本概念
面 — — 多 态 性 • 多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行 向 为 。 这 使 得 同 一 个 属 性 或 行 为 在 一 般 类 及 其 各 个 特 殊 类 中 具 有 不 同 的 语 义 。
• 例如:
对 数 的 加 法 - > 实 数 的 加 法 象- > 复 数 的 加 法 的 方 法
第19页/共702页
面向对象的软件工程
面 • 面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括 : 向 • 面向对象的分析(OOA) 对 • 面向对象的设计(OOD)
• 面向对象的编程(OOP)
面向对象的语言
计 算 机
语 言 的
发 展
• 出发点: • 更直接地描述客观世界中存在的事物(对象)以及它们之间的关 系。
• 特点: • 是高级语言。 • 将客观事物看作具有属性和行为的对象。 • 通过抽象找出同一类对象的共同属性和行为,形成类。 • 通过类的继承与多态实现代码重用
第5页/共702页
程序设计方法的发展历程
面 — — 面 向 对 象 的 方法 • 将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体 ——对象。 向 • 对同类型对象抽象出其共性,形成类。 对 • 类通过一个简单的外部接口,与外界发生关系。 象 • 对象与对象之间通过消息进行通讯。
的 方 法
第11页/共702页
向 • 是现实世界中一个实际存在的事物。
• 可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)。
对 • 是构成世界的一个独立单位,具有:
清华《C语言程序设计》2语句和循环ppt

else printf(“%d”,y); }
2021/8/24 C语言程序设计
22
2222
第 三 章
语 注意:不管例是、单若分变量支已还正是确定多义分,支有以,下如程果序段语句 句 由多个语句构成,必须要加上{}构成复合语句;
否则,要不程i序nt 存a=3在,b=语5,c法=7;错误,要不就结果错误。
b=t
2021/8/24 C语言程序设计
27
2277
第 三 章
语 句
例、输入三个数a,b,c,要求按由小到大的顺序输出。
If a>b 将a和b对换 If a>c 将a和c对换 If b>c 将b和c对换
a>b y
n a>c n
y a和b交换 a和c交换
b>c y c和b交换
2021/8/24 C语言程序设计
y=2*x;
if ( x < 0 ) y = 3 - x ;
printf(“y= %6.2f”, y );
}
2021/8/24 C语言程序设计
21
假 (0)
2211
第 三
章 (2)双分支选择语句
语 句
格式:if(表达式) 语句1 else
语句2
Y 条件
#include<stdio.h> main() 语句1
2021/8/24 C语言程序设计
9
99
第
三
章
语 句
主要内容
一、关系运算符和关系表达式 二、逻辑运算符和逻辑表达式 三、if语句 四、witch语句 五、程序举例
2021/8/24 C语言程序设计
10
1100
第
清华大学C 课程PPT课件

• 引入了类的机制,最初的C++被称为“带类
语 的C” 言 • 1983年正式取名为C++ 概 • 从1989年开始C++语言的标准化工作 述 • 于1994年制定了ANSI C++标准草案
• 于1998年11月被国际标准化组织(ISO)批 准为国际标准。2003年发布了C++标准第二 版,成为目前的C++
j = 50000;
i = j;//将unsigned short赋值给signed short变量
cout <<" The short int is:"<< i <<endl; //整型数值溢出
cout <<" The short unsigned int is:"<< j<<endl;
return 0; }
15
第15页/共99页
基 数据类—型整型数据及取值范围
本
数 类型
说明符 位数 数值范围
据 短整
short 16 -32768~32767
类 基本
int
32 -231~(231-1)
型 长整
long
32 -231~(231-1)
和 无符号
表 unsigned short 16 0~65535
达 式
unsigned int unsigned long
赋值运算符和—赋值—表达赋式值表达式举例 基
本 数 据
a=5
表达式值为5
a=b=c=5 表达式值为5,a,b,c均为5
类
a=5+(c=6) 表达式值为11,a为11,c为6
C语言程序设计教程ppt课件(2024)

打印九九乘法表
使用嵌套的for循环打印九九乘法表。
23
04
数组与字符串处理
2024/1/30
24
一维数组定义和操作
2024/1/30
01
一维数组定义
类型说明符 数组名
[常量表达式];
02
一维数组初始化
在定义数组时对数 组元素赋以初值;
04
一维数组操作
包括赋值、输入输
03
出、排序、查找等
。
一维数组引用
do-while循环
与while循环类似,但至少会执行一次 循环体。
示例
int i = 0; do { printf("%d ", i); i; } while (i < 10);
语法
do { // code to be executed } while (condition);
2024/1/30
19
赋值运算符
包括赋值运算符(=)和复合赋 值运算符(+=、-=、*=、/=、 %=),用于为变量赋值或进行 运算后赋值。
12
类型转换与运算顺序
2024/1/30
类型转换
当不同类型的数据进行运算时,需要进行类型转换,包括自 动类型转换和强制类型转换。自动类型转换由编译器自动完 成,而强制类型转换需要使用类型转换运算符。
0。
free函数
用于释放已分配的内存空间 ,避免内存泄漏。
2024/1/30
36
指针在数组、字符串等数据结构中应用
指针与数组
数组名本质上是一个指向数组首元素的指针;通过指针可 以访问和修改数组元素。
指针与字符串
字符串在C语言中以字符数组的形式存储,指针可以方便 地操作字符串。
使用嵌套的for循环打印九九乘法表。
23
04
数组与字符串处理
2024/1/30
24
一维数组定义和操作
2024/1/30
01
一维数组定义
类型说明符 数组名
[常量表达式];
02
一维数组初始化
在定义数组时对数 组元素赋以初值;
04
一维数组操作
包括赋值、输入输
03
出、排序、查找等
。
一维数组引用
do-while循环
与while循环类似,但至少会执行一次 循环体。
示例
int i = 0; do { printf("%d ", i); i; } while (i < 10);
语法
do { // code to be executed } while (condition);
2024/1/30
19
赋值运算符
包括赋值运算符(=)和复合赋 值运算符(+=、-=、*=、/=、 %=),用于为变量赋值或进行 运算后赋值。
12
类型转换与运算顺序
2024/1/30
类型转换
当不同类型的数据进行运算时,需要进行类型转换,包括自 动类型转换和强制类型转换。自动类型转换由编译器自动完 成,而强制类型转换需要使用类型转换运算符。
0。
free函数
用于释放已分配的内存空间 ,避免内存泄漏。
2024/1/30
36
指针在数组、字符串等数据结构中应用
指针与数组
数组名本质上是一个指向数组首元素的指针;通过指针可 以访问和修改数组元素。
指针与字符串
字符串在C语言中以字符数组的形式存储,指针可以方便 地操作字符串。
C语言程序设计教程ppt课件完整版pptx

C语言的应用领域
计算机系统基本概念
计算机系统的组成 操作系统的基本概念 计算机中的数与编码
编程环境与工具安装配置
01
常见的C语言编程环境
02
安装与配置C语言编译器
使用集成开发环境(IDE)进行C语言编程
03
第一个C程序:Hello, World!
01
C程序的基本结 构
02
编写Hello, World!程序
应用场景
适用于需要根据特定条件提前终 止循环或跳过某些循环操作的情 况。
04 函数与模块化设计
函数定义和调用
01
函数定义
包括函数名、参数列表、返回值 类型和函数体等部分,用于描述 函数的功能和实现细节。
函数调用
02
03
函数声明
通过函数名和参数列表来调用函 数,实现相应功能并获取返回值 。
在使用函数之前,需要对函数进 行声明,以便编译器识别函数的 存在和调用方式。
THANKS FOR WATCHING
感谢您的观看
指针运算符
包括取地址运算符&和取值运算符*,分别 用于获取变量的内存地址和通过指针访问内 存中的数据。
动态内存分配函数(malloc, free)使用方法
malloc函数
用于在堆区动态分配指定大小的内存空间,并返回 分配内存的起始地址。
free函数
用于释放之前通过malloc函数分配的内存空间,防 止内存泄漏。
动态规划思想
动态规划是一种在数学、计算机科学和经济学中 使用的,通过把原问题分解为相对简单的子问题 的方式来求解复杂问题的方法。动态规划常用于 优化重叠子问题的计算。
回溯与分支限界法
回溯法是一种通过探索所有可能的候选解来找出 所有解的算法,而分支限界法是一种通过剪枝来 减少搜索空间的优化算法。回溯与分支限界法常 用于解决组合优化问题。
计算机系统基本概念
计算机系统的组成 操作系统的基本概念 计算机中的数与编码
编程环境与工具安装配置
01
常见的C语言编程环境
02
安装与配置C语言编译器
使用集成开发环境(IDE)进行C语言编程
03
第一个C程序:Hello, World!
01
C程序的基本结 构
02
编写Hello, World!程序
应用场景
适用于需要根据特定条件提前终 止循环或跳过某些循环操作的情 况。
04 函数与模块化设计
函数定义和调用
01
函数定义
包括函数名、参数列表、返回值 类型和函数体等部分,用于描述 函数的功能和实现细节。
函数调用
02
03
函数声明
通过函数名和参数列表来调用函 数,实现相应功能并获取返回值 。
在使用函数之前,需要对函数进 行声明,以便编译器识别函数的 存在和调用方式。
THANKS FOR WATCHING
感谢您的观看
指针运算符
包括取地址运算符&和取值运算符*,分别 用于获取变量的内存地址和通过指针访问内 存中的数据。
动态内存分配函数(malloc, free)使用方法
malloc函数
用于在堆区动态分配指定大小的内存空间,并返回 分配内存的起始地址。
free函数
用于释放之前通过malloc函数分配的内存空间,防 止内存泄漏。
动态规划思想
动态规划是一种在数学、计算机科学和经济学中 使用的,通过把原问题分解为相对简单的子问题 的方式来求解复杂问题的方法。动态规划常用于 优化重叠子问题的计算。
回溯与分支限界法
回溯法是一种通过探索所有可能的候选解来找出 所有解的算法,而分支限界法是一种通过剪枝来 减少搜索空间的优化算法。回溯与分支限界法常 用于解决组合优化问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
21世纪高等学校计算机教育实用规划教材
C 程序设计教程(中)
朱小菲 主 编 清华大学出版社
第5章循环结构 第6章数组 第7章指针
清华大学出版社
第5章 循环结构
一 5.1循环的ห้องสมุดไป่ตู้成 二 5.2循环语句
三 5.3循环的嵌套 四 5.4循环应用实例
5.1 循环的构成
【例5.1】判断某一正整数是否能够被3整除。
5.2.3 for语句
▪ 它的一般形式为: • for(表达式1;表达式2;表达式3) 语句
表达式1:循环的初始条件,一般为赋值表达式,给循 环的控制变量赋初值;
表达式2:循环条件,该表达式的值为逻辑量,一般为 关系表达式或逻辑表达式;
表达式3:循环的步长,一般为赋值表达式。 语句:循环体,当有多条语句时,必须使用复合语句。
循环体 步长 循环条件
do~while语句N~S结构化流程图
【例5.5】计算sin(x)=x-x3/3!+x5/5!x7/7!+…直到最后一项的绝对值小于10-7时 为止。
n=3,sum=0 输入x t=x
sum=sum+t
t=t*(-x*x)/(n-1)*n n=n+2
fabs(t)>=1e-7 输出sum
输入m
m%3==0
1
0
能被3整除
不能被3整除
N~S结构化流程图
【例5.2】找出100以内能被3整除的正整数。
初始条件
循环条 件 成立
循环体
不成立
步长
循环以后的其他语句
循环流程图
5.2 循环语句
▪ 5.2.1 while语句 • while语句是当型循环语句,一般形式为: • while(表达式) 语句;
max=i; printf("Max is %d\n",max); }
5.2.4 break和continue
▪ 1.break语句 • break语句的一般形式为: • break;
【例5.8】判断某个一位数是否在一个不高于四位的 整数中出现。
main() {
int m,n; int flag=1; scanf("%d%d",&m,&n); while(m!=0) {
}
5.2.5三种语句的选用
▪ 1.while和do~while语句的区别
• while语句对作为循环条件的表达式求值和验证在执行循环体之前, 而do-While语句对作为循环条件的表达式求值和验证在执行循环体 之后。对于do-while语句,它的循环体至少被执行一次。
1
n%3==0 0
sum=sum+n
n++ 输出sum
例5.4 N~S结构化流程图
main() {
int n=1,sum=0; while(n<=100) {
if(n%3==0) sum=sum+n; n++; } printf("%d\n",sum); }
5.2.2 do~while语句
▪ do~while的一般形式为: do 语句 while<表达式>;
【例5.9】输出1~1000之间能被3,5,7同 时整除的数。
main()
{
int n;
for(n=1;n<=1000;n++)
{
if (n%3!=0) continue;
if (n%5!=0)
continue;
if(n%7!=0) continue;
printf("%8d",n);
}
printf("\n");
#include <stdio.h> #include <math.h> main ( ) { int m,n,i,t,max;
printf("Please input m,n :"); scanf("%d%d",&m,&n); if(m>n) t=n; else t=m; for(i=1;i<=t;i++) if(m%i==0&&n%i==0)
例如:找出100以内能被3整除的正整数。 main() {
int m=1; while(m<=100)
{ if(m%3==0)
printf("%8d",m); m=m+1; } }
【例5.3】求n!
n=1,s=1 输入m n<=m s=s*n n++ 输出s
例5.3 N~S结构化流程图
main() {
例5.5 N~S结构化流程图
#include "math.h" #include "stdio.h" main() {
float sum=0,t,x,n=3; printf("please input x :"); scanf("%f",&x); t=x; do {
sum=sum+t; t=t*(-x*x)/((n-1)*n); n=n+2; }while(fabs(t)>=1e-7); printf("sin(%f)=%f\n", x,sum); }
for语句的几种格式
▪ for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。 ▪ (1)for( ; ;) 语句; ▪ (2)for( ;表达式2;表达式3) 语句; ▪ (3)for(表达式1;表达式2;) 语句; ▪ (4)for(i=1,j=n;i<j;i++,j--) 语句;
【例5.7】求两个正整数的最大公约数
int n=1,m; long int s=1; printf("please input m:"); scanf("%d",&m); while(n<=m) {
s*=n; n++; } printf("%d!=%ld\n",m,s); }
【例5.4】求100以内能被3整除的数之和
n=1
sum=0 n<=100
【例5.6】计算自然数1到n的平方和。
#include <stdio.h> main ( ) {
int i,n; float sum=0; printf("please input n :"); scanf("%d",&n); for(i=1;i<=n;i++) sum+=i*i; printf("1*1+2*2 ... %d*%d=%f\n",n,n,sum); }
if(n==m%10) {flag=0;break;}
m=m/10; } if(flag==0)
printf("Yes!\n"); else
printf("No!\n"); }
2.continue语句
▪ 一般格式是: • continue;
执行了continue语句, 程序就跳过循环体中位 于该语句后的所有语句, 提前结束本次循环周期 并开始新一轮循环。
C 程序设计教程(中)
朱小菲 主 编 清华大学出版社
第5章循环结构 第6章数组 第7章指针
清华大学出版社
第5章 循环结构
一 5.1循环的ห้องสมุดไป่ตู้成 二 5.2循环语句
三 5.3循环的嵌套 四 5.4循环应用实例
5.1 循环的构成
【例5.1】判断某一正整数是否能够被3整除。
5.2.3 for语句
▪ 它的一般形式为: • for(表达式1;表达式2;表达式3) 语句
表达式1:循环的初始条件,一般为赋值表达式,给循 环的控制变量赋初值;
表达式2:循环条件,该表达式的值为逻辑量,一般为 关系表达式或逻辑表达式;
表达式3:循环的步长,一般为赋值表达式。 语句:循环体,当有多条语句时,必须使用复合语句。
循环体 步长 循环条件
do~while语句N~S结构化流程图
【例5.5】计算sin(x)=x-x3/3!+x5/5!x7/7!+…直到最后一项的绝对值小于10-7时 为止。
n=3,sum=0 输入x t=x
sum=sum+t
t=t*(-x*x)/(n-1)*n n=n+2
fabs(t)>=1e-7 输出sum
输入m
m%3==0
1
0
能被3整除
不能被3整除
N~S结构化流程图
【例5.2】找出100以内能被3整除的正整数。
初始条件
循环条 件 成立
循环体
不成立
步长
循环以后的其他语句
循环流程图
5.2 循环语句
▪ 5.2.1 while语句 • while语句是当型循环语句,一般形式为: • while(表达式) 语句;
max=i; printf("Max is %d\n",max); }
5.2.4 break和continue
▪ 1.break语句 • break语句的一般形式为: • break;
【例5.8】判断某个一位数是否在一个不高于四位的 整数中出现。
main() {
int m,n; int flag=1; scanf("%d%d",&m,&n); while(m!=0) {
}
5.2.5三种语句的选用
▪ 1.while和do~while语句的区别
• while语句对作为循环条件的表达式求值和验证在执行循环体之前, 而do-While语句对作为循环条件的表达式求值和验证在执行循环体 之后。对于do-while语句,它的循环体至少被执行一次。
1
n%3==0 0
sum=sum+n
n++ 输出sum
例5.4 N~S结构化流程图
main() {
int n=1,sum=0; while(n<=100) {
if(n%3==0) sum=sum+n; n++; } printf("%d\n",sum); }
5.2.2 do~while语句
▪ do~while的一般形式为: do 语句 while<表达式>;
【例5.9】输出1~1000之间能被3,5,7同 时整除的数。
main()
{
int n;
for(n=1;n<=1000;n++)
{
if (n%3!=0) continue;
if (n%5!=0)
continue;
if(n%7!=0) continue;
printf("%8d",n);
}
printf("\n");
#include <stdio.h> #include <math.h> main ( ) { int m,n,i,t,max;
printf("Please input m,n :"); scanf("%d%d",&m,&n); if(m>n) t=n; else t=m; for(i=1;i<=t;i++) if(m%i==0&&n%i==0)
例如:找出100以内能被3整除的正整数。 main() {
int m=1; while(m<=100)
{ if(m%3==0)
printf("%8d",m); m=m+1; } }
【例5.3】求n!
n=1,s=1 输入m n<=m s=s*n n++ 输出s
例5.3 N~S结构化流程图
main() {
例5.5 N~S结构化流程图
#include "math.h" #include "stdio.h" main() {
float sum=0,t,x,n=3; printf("please input x :"); scanf("%f",&x); t=x; do {
sum=sum+t; t=t*(-x*x)/((n-1)*n); n=n+2; }while(fabs(t)>=1e-7); printf("sin(%f)=%f\n", x,sum); }
for语句的几种格式
▪ for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。 ▪ (1)for( ; ;) 语句; ▪ (2)for( ;表达式2;表达式3) 语句; ▪ (3)for(表达式1;表达式2;) 语句; ▪ (4)for(i=1,j=n;i<j;i++,j--) 语句;
【例5.7】求两个正整数的最大公约数
int n=1,m; long int s=1; printf("please input m:"); scanf("%d",&m); while(n<=m) {
s*=n; n++; } printf("%d!=%ld\n",m,s); }
【例5.4】求100以内能被3整除的数之和
n=1
sum=0 n<=100
【例5.6】计算自然数1到n的平方和。
#include <stdio.h> main ( ) {
int i,n; float sum=0; printf("please input n :"); scanf("%d",&n); for(i=1;i<=n;i++) sum+=i*i; printf("1*1+2*2 ... %d*%d=%f\n",n,n,sum); }
if(n==m%10) {flag=0;break;}
m=m/10; } if(flag==0)
printf("Yes!\n"); else
printf("No!\n"); }
2.continue语句
▪ 一般格式是: • continue;
执行了continue语句, 程序就跳过循环体中位 于该语句后的所有语句, 提前结束本次循环周期 并开始新一轮循环。