1、哈尔滨工业大学计算机科学与技术学院哈尔滨工业大学计算机科学与技术学院苏小红苏小红第1页2024/6/30 周日C语言大学实用教程课件 制作人苏小红2 主教材:主教材:主教材:主教材:苏苏苏苏小小小小红红红红等,等,等,等,C C语语语语言大学言大学言大学言大学实实实实用教程,用教程,用教程,用教程,电电电电子工子工子工子工业业业业出版出版出版出版社,社,社,社,2004,82004,8 苏苏苏苏小小小小红红红红等,等,等,等,C C语语语语言大学言大学言大学言大学实实实实用教程(第用教程(第用教程(第用教程(第2 2版),版),版),版),电电电电子子子子工工工工业业业业出版社,出版社,出版社
2、,出版社,,2,2 试验试验试验试验教材:教材:教材:教材:苏苏苏苏小小小小红红红红等,等,等,等,C C语语语语言大学言大学言大学言大学实实实实用教程用教程用教程用教程习题习题习题习题与与与与试验试验试验试验指指指指导导导导,电电电电子工子工子工子工业业业业出版社,出版社,出版社,出版社,2004,82004,8 苏苏苏苏小小小小红红红红等,等,等,等,C C语语语语言大学言大学言大学言大学实实实实用教程学用教程学用教程学用教程学习习习习指指指指导导导导,电电电电子子子子工工工工业业业业出版社,出版社,出版社,出版社,,4,4第2页2024/6/30 周日C语言大学实用教程课件 制作人苏小红
3、3试验内容试验内容试验内容试验内容第3页2024/6/30 周日C语言大学实用教程课件 制作人苏小红4试验试验试验试验1 1:熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程练习练习练习练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习 问题问题问题问题1 1:要使下面程序输出语句在屏幕上显示:要使下面程序输出语句在屏幕上显示:要使下面程序输出语句在屏幕上显示:要使下面程序输出语句在屏幕上显示1,2,341,2,34,则从键盘输入数据格式应为以下备选答案中哪一,则从键盘输入数据格式应为以下备选答案
4、中哪一,则从键盘输入数据格式应为以下备选答案中哪一,则从键盘输入数据格式应为以下备选答案中哪一个?个?个?个?#include#include main()main()char a,b;char a,b;int c;int c;scanf(%c%c%d,&a,&b,&c);scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);printf(%c,%c,%dn,a,b,c);A)1 2 34 A)1 2 34 B)1,2,34 B)1,2,34 C)1,2,34 C)1,2,34 D)12 34D)12 34第4页2024/6/30 周日C语言大学实用教程
5、课件 制作人苏小红5试验试验试验试验1 1:熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程练习练习练习练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习 问题问题问题问题2 2:与上面程序键盘输入相同情况下,要使上:与上面程序键盘输入相同情况下,要使上:与上面程序键盘输入相同情况下,要使上:与上面程序键盘输入相同情况下,要使上面程序输出语句在屏幕上显示面程序输出语句在屏幕上显示面程序输出语句在屏幕上显示面程序输出语句在屏幕上显示1 2 341 2 34,则应修改程,则应修改程,则应修改程,则应修
6、改程序中哪条语句?怎样修改?序中哪条语句?怎样修改?序中哪条语句?怎样修改?序中哪条语句?怎样修改?#include#include main()main()char a,b;char a,b;int c;int c;scanf(%c%c%d,&a,&b,&c);scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);printf(%c,%c,%dn,a,b,c);第5页2024/6/30 周日C语言大学实用教程课件 制作人苏小红6 问题问题问题问题3 3:要使上面程序键盘输入数据格式为:要使上面程序键盘输入数据格式为:要使上面程序键盘输入数据格式为:要使
7、上面程序键盘输入数据格式为1,2,341,2,34,输出语句在屏幕上显示结果也为输出语句在屏幕上显示结果也为输出语句在屏幕上显示结果也为输出语句在屏幕上显示结果也为1,2,341,2,34,则应修改,则应修改,则应修改,则应修改程序中哪条语句?怎样修改?程序中哪条语句?怎样修改?程序中哪条语句?怎样修改?程序中哪条语句?怎样修改?#include#include main()main()char a,b;char a,b;int c;int c;scanf(%c%c%d,&a,&b,&c);scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);print
8、f(%c,%c,%dn,a,b,c);试验试验试验试验1 1:熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程练习练习练习练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习 第6页2024/6/30 周日C语言大学实用教程课件 制作人苏小红7 问题问题问题问题4 4:要使上面程序键盘输入数据格式为:要使上面程序键盘输入数据格式为:要使上面程序键盘输入数据格式为:要使上面程序键盘输入数据格式为1,2,341,2,34,而输出语句在屏幕上显示结果为而输出语句在屏幕上显示结果为而输出语句在屏幕上显示结果
9、为而输出语句在屏幕上显示结果为 1,2,341,2,34,则应修改程序中哪条语句?怎样修改?则应修改程序中哪条语句?怎样修改?则应修改程序中哪条语句?怎样修改?则应修改程序中哪条语句?怎样修改?提醒:利用转义字符输出字符单引号字符。提醒:利用转义字符输出字符单引号字符。提醒:利用转义字符输出字符单引号字符。提醒:利用转义字符输出字符单引号字符。#include#include main()main()char a,b;char a,b;int c;int c;scanf(%c%c%d,&a,&b,&c);scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c
10、);printf(%c,%c,%dn,a,b,c);试验试验试验试验1 1:熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程练习练习练习练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习 第7页2024/6/30 周日C语言大学实用教程课件 制作人苏小红8 问题问题问题问题5 5:要使上面程序键盘输入不论用下面哪:要使上面程序键盘输入不论用下面哪:要使上面程序键盘输入不论用下面哪:要使上面程序键盘输入不论用下面哪种格式输入数据,程序在屏幕上输出结果都为种格式输入数据,程序在屏幕上输出结果都为种格式
11、输入数据,程序在屏幕上输出结果都为种格式输入数据,程序在屏幕上输出结果都为 1,2,341,2,34,则程序应修改程序中哪条语,则程序应修改程序中哪条语,则程序应修改程序中哪条语,则程序应修改程序中哪条语句?怎样修改?句?怎样修改?句?怎样修改?句?怎样修改?第一个输入方式:第一个输入方式:第一个输入方式:第一个输入方式:1,2,341,2,34 (以逗号作为分隔符)(以逗号作为分隔符)(以逗号作为分隔符)(以逗号作为分隔符)第二种输入方式:第二种输入方式:第二种输入方式:第二种输入方式:1 2 341 2 34 (以空格作为分隔符)(以空格作为分隔符)(以空格作为分隔符)(以空格作为分隔符)
12、第三种输入方式:第三种输入方式:第三种输入方式:第三种输入方式:1 2 341 2 34 (以(以(以(以TabTab键作为分隔键作为分隔键作为分隔键作为分隔符)符)符)符)第四种输入方式:第四种输入方式:第四种输入方式:第四种输入方式:1 1 2 2 34 34 (以回车符作为分隔符)(以回车符作为分隔符)(以回车符作为分隔符)(以回车符作为分隔符)试验试验试验试验1 1:熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程练习练习练习练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习键盘输入与屏幕输出练习 第8页202
13、4/6/30 周日C语言大学实用教程课件 制作人苏小红9试验试验试验试验1 1:熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程熟悉上机环境和次序结构编程练习练习练习练习计算定时存款本利之和计算定时存款本利之和计算定时存款本利之和计算定时存款本利之和 设银行定时存款年利率设银行定时存款年利率设银行定时存款年利率设银行定时存款年利率raterate为为为为2.25%2.25%,并已知,并已知,并已知,并已知存款期为存款期为存款期为存款期为n n年,存款本金为年,存款本金为年,存款本金为年,存款本金为capitalcapital元,试编程元,试编程元,试编程元,试编程
14、计算计算计算计算n n年后本利之和年后本利之和年后本利之和年后本利之和depositdeposit。要求定时存款年利率要求定时存款年利率要求定时存款年利率要求定时存款年利率raterate、存款期、存款期、存款期、存款期n n和存款本金和存款本金和存款本金和存款本金capitalcapital均由键盘输入。均由键盘输入。均由键盘输入。均由键盘输入。第9页2024/6/30 周日C语言大学实用教程课件 制作人苏小红10试验试验试验试验2 2:选择结构编程练习选择结构编程练习选择结构编程练习选择结构编程练习身高预测身高预测身高预测身高预测 每个做父母都关心自己孩子成人后身高,据相关生理每个做父母都
15、关心自己孩子成人后身高,据相关生理每个做父母都关心自己孩子成人后身高,据相关生理每个做父母都关心自己孩子成人后身高,据相关生理卫生知识与数理统计分析表明,影响小孩成人后身高卫生知识与数理统计分析表明,影响小孩成人后身高卫生知识与数理统计分析表明,影响小孩成人后身高卫生知识与数理统计分析表明,影响小孩成人后身高原因有遗传、饮食习惯与坚持体育锻炼等。小孩成人原因有遗传、饮食习惯与坚持体育锻炼等。小孩成人原因有遗传、饮食习惯与坚持体育锻炼等。小孩成人原因有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和本身性别亲密相关。后身高与其父母身高和本身性别亲密相关。后身高与其父母身高和本身性别亲
16、密相关。后身高与其父母身高和本身性别亲密相关。设设设设faHeightfaHeight为其父身高,为其父身高,为其父身高,为其父身高,moHeightmoHeight为其母身高,身高为其母身高,身高为其母身高,身高为其母身高,身高预测公式为:预测公式为:预测公式为:预测公式为:男性成人时身高男性成人时身高男性成人时身高男性成人时身高 =(faHeight+moHeight)*0.54(cm)=(faHeight+moHeight)*0.54(cm)女性成人时身高女性成人时身高女性成人时身高女性成人时身高 =(faHeight*0.923+moHeight)/2(cm)=(faHeight*0.
17、923+moHeight)/2(cm)另外,假如喜爱体育锻炼,那么可增加身高另外,假如喜爱体育锻炼,那么可增加身高另外,假如喜爱体育锻炼,那么可增加身高另外,假如喜爱体育锻炼,那么可增加身高2%2%,假,假,假,假如有良好卫生饮食习惯,那么可增加身高如有良好卫生饮食习惯,那么可增加身高如有良好卫生饮食习惯,那么可增加身高如有良好卫生饮食习惯,那么可增加身高1.5%1.5%。第10页2024/6/30 周日C语言大学实用教程课件 制作人苏小红11试验试验试验试验2 2:选择结构编程练习选择结构编程练习选择结构编程练习选择结构编程练习身高预测身高预测身高预测身高预测 编程从键盘输入你性别(用字符型
18、变量编程从键盘输入你性别(用字符型变量编程从键盘输入你性别(用字符型变量编程从键盘输入你性别(用字符型变量sexsex存放,输存放,输存放,输存放,输入字符入字符入字符入字符F F表示女性,输入字符表示女性,输入字符表示女性,输入字符表示女性,输入字符MM表示男性)、父母身表示男性)、父母身表示男性)、父母身表示男性)、父母身高(用实型变量存放,高(用实型变量存放,高(用实型变量存放,高(用实型变量存放,faHeightfaHeight为其父身高,为其父身高,为其父身高,为其父身高,moHeightmoHeight为其母身高)、是否喜爱体育锻炼(用字符为其母身高)、是否喜爱体育锻炼(用字符为其
19、母身高)、是否喜爱体育锻炼(用字符为其母身高)、是否喜爱体育锻炼(用字符型变量型变量型变量型变量sportssports存放,输入字符存放,输入字符存放,输入字符存放,输入字符Y Y表示喜爱,输入字符表示喜爱,输入字符表示喜爱,输入字符表示喜爱,输入字符N N表示不喜爱)、是否有良好饮食习惯等条件(用字符表示不喜爱)、是否有良好饮食习惯等条件(用字符表示不喜爱)、是否有良好饮食习惯等条件(用字符表示不喜爱)、是否有良好饮食习惯等条件(用字符型变量型变量型变量型变量dietdiet存放,输入字符存放,输入字符存放,输入字符存放,输入字符Y Y表示喜爱,输入字符表示喜爱,输入字符表示喜爱,输入字符
20、表示喜爱,输入字符N N表表表表示不喜爱),利用给定公式和身高预测方法对你身高示不喜爱),利用给定公式和身高预测方法对你身高示不喜爱),利用给定公式和身高预测方法对你身高示不喜爱),利用给定公式和身高预测方法对你身高进行预测。进行预测。进行预测。进行预测。第11页2024/6/30 周日C语言大学实用教程课件 制作人苏小红12试验试验试验试验2 2:选择结构编程练习:选择结构编程练习:选择结构编程练习:选择结构编程练习简单计算器程序简单计算器程序简单计算器程序简单计算器程序 要求用要求用要求用要求用switchswitch语句编程设计一个简单计算器程序。要语句编程设计一个简单计算器程序。要语句
21、编程设计一个简单计算器程序。要语句编程设计一个简单计算器程序。要求依据用户从键盘输入表示式:求依据用户从键盘输入表示式:求依据用户从键盘输入表示式:求依据用户从键盘输入表示式:操作数操作数操作数操作数1 1 运算符运算符运算符运算符op op 操作数操作数操作数操作数2 2 计算表示式值,指定算术运算符为加(计算表示式值,指定算术运算符为加(计算表示式值,指定算术运算符为加(计算表示式值,指定算术运算符为加(+)、减()、减()、减()、减(-)、)、)、)、乘(乘(乘(乘(*)、除()、除()、除()、除(/)。)。)。)。第12页2024/6/30 周日C语言大学实用教程课件 制作人苏小红
22、13例例例例4.84.8:计算器程序:计算器程序:计算器程序:计算器程序 编程设计一个简单计算器程序,要求依据用户从编程设计一个简单计算器程序,要求依据用户从编程设计一个简单计算器程序,要求依据用户从编程设计一个简单计算器程序,要求依据用户从键盘输入以下形式表示式:键盘输入以下形式表示式:键盘输入以下形式表示式:键盘输入以下形式表示式:操作数操作数操作数操作数1 1 运算符运算符运算符运算符op op 操作数操作数操作数操作数2 2 然后,计算并输出表示式值然后,计算并输出表示式值然后,计算并输出表示式值然后,计算并输出表示式值 指定运算符为指定运算符为指定运算符为指定运算符为 加(加(加(加
23、(+)减(减(减(减(-)乘(乘(乘(乘(*)除(除(除(除(/)第13页2024/6/30 周日C语言大学实用教程课件 制作人苏小红14mainmain()()intint data1,data2;/*data1,data2;/*定义两个操作符定义两个操作符定义两个操作符定义两个操作符*/charchar op;/*op;/*定义运算符定义运算符定义运算符定义运算符*/printf(Please enter the expression:);printf(Please enter the expression:);scanf(%d%c%d,&data1,&op,&data2);/*scanf
24、(%d%c%d,&data1,&op,&data2);/*输入运算表示式输入运算表示式输入运算表示式输入运算表示式*/switchswitch(op)(op)casecase+:/*+:/*处理加法处理加法处理加法处理加法*/printf(%d+%d=%dn,data1,data2,data1+data2);printf(%d+%d=%dn,data1,data2,data1+data2);breakbreak;casecase-:/*-:/*处理减法处理减法处理减法处理减法*/printf(%d-%d=%dn,data1,data2,data1-data2);printf(%d-%d=%dn
25、,data1,data2,data1-data2);breakbreak;casecase*:/*:/*处理乘法处理乘法处理乘法处理乘法*/printf(%d*%d=%dn,data1,data2,data1*data2);printf(%d*%d=%dn,data1,data2,data1*data2);breakbreak;casecase/:/*/:/*处理除法处理除法处理除法处理除法*/ifif(0=data20=data2)printf(Division by zero!n);printf(Division by zero!n);elseelse printf(%d/%d=%dn,d
26、ata1,data2,data1/data2);printf(%d/%d=%dn,data1,data2,data1/data2);breakbreak;defaultdefault:printf(Unknown operator!n);printf(Unknown operator!n);例例例例4.84.8第14页2024/6/30 周日C语言大学实用教程课件 制作人苏小红15试验试验试验试验2 2:选择结构编程练习:选择结构编程练习:选择结构编程练习:选择结构编程练习简单计算器程序简单计算器程序简单计算器程序简单计算器程序 本试验程序是在本试验程序是在本试验程序是在本试验程序是在例例例例
27、4.84.8基础上,增加以下要求:基础上,增加以下要求:基础上,增加以下要求:基础上,增加以下要求:(1 1)假如要求程序能进行浮点数算术运算,程序应该怎样)假如要求程序能进行浮点数算术运算,程序应该怎样)假如要求程序能进行浮点数算术运算,程序应该怎样)假如要求程序能进行浮点数算术运算,程序应该怎样修改?修改?修改?修改?怎样比较实型变量怎样比较实型变量怎样比较实型变量怎样比较实型变量data2data2和常数和常数和常数和常数0 0是否相等?是否相等?是否相等?是否相等?(2 2)假如要求输入算术表示式中操作数和运算符之间能够)假如要求输入算术表示式中操作数和运算符之间能够)假如要求输入算术
28、表示式中操作数和运算符之间能够)假如要求输入算术表示式中操作数和运算符之间能够加入任意多空白符,那么程序怎样修改?加入任意多空白符,那么程序怎样修改?加入任意多空白符,那么程序怎样修改?加入任意多空白符,那么程序怎样修改?(3 3)(选作题)假如要求连续做屡次算术运算,每次运算)(选作题)假如要求连续做屡次算术运算,每次运算)(选作题)假如要求连续做屡次算术运算,每次运算)(选作题)假如要求连续做屡次算术运算,每次运算结束后,程序都给出提醒:结束后,程序都给出提醒:结束后,程序都给出提醒:结束后,程序都给出提醒:Do you want to continue(Y/N or y/n)?Do yo
29、u want to continue(Y/N or y/n)?假如用户输入假如用户输入假如用户输入假如用户输入Y Y或或或或y y时,程序继续进行其它算术运算,不然时,程序继续进行其它算术运算,不然时,程序继续进行其它算术运算,不然时,程序继续进行其它算术运算,不然程序才退出运行状态。那么,程序怎样修改?程序才退出运行状态。那么,程序怎样修改?程序才退出运行状态。那么,程序怎样修改?程序才退出运行状态。那么,程序怎样修改?第15页2024/6/30 周日C语言大学实用教程课件 制作人苏小红16 语句语句语句语句 if(0=data2)if(0=data2)必要性必要性必要性必要性1998199
30、8年年年年1111月月月月科学美国人科学美国人科学美国人科学美国人杂志,描述了美国导弹巡杂志,描述了美国导弹巡杂志,描述了美国导弹巡杂志,描述了美国导弹巡洋舰约克敦号上一起事故,除零错造成军舰推进系统关洋舰约克敦号上一起事故,除零错造成军舰推进系统关洋舰约克敦号上一起事故,除零错造成军舰推进系统关洋舰约克敦号上一起事故,除零错造成军舰推进系统关闭闭闭闭 假如要求程序能进行浮点数算术运算,语句假如要求程序能进行浮点数算术运算,语句假如要求程序能进行浮点数算术运算,语句假如要求程序能进行浮点数算术运算,语句 if if(0=data2)(0=data2)还能用于比较实型变量还能用于比较实型变量还能
31、用于比较实型变量还能用于比较实型变量data2data2和和和和常数常数常数常数0 0大小吗?大小吗?大小吗?大小吗?if(if(fabsfabs(data2)=1e-7)(data2)=1e-7)假如要求输入算术表示式中操作数和运算符之间能假如要求输入算术表示式中操作数和运算符之间能假如要求输入算术表示式中操作数和运算符之间能假如要求输入算术表示式中操作数和运算符之间能够加入任意多个空格符,那么程序怎样修改?够加入任意多个空格符,那么程序怎样修改?够加入任意多个空格符,那么程序怎样修改?够加入任意多个空格符,那么程序怎样修改?scanf(%d%scanf(%d%c c%d,&data1,&o
32、p,&data2);%d,&data1,&op,&data2);scanf(%d%scanf(%d%1s1s%d,&data1,&op,&data2);%d,&data1,&op,&data2);试验试验试验试验2 2:选择结构编程练习:选择结构编程练习:选择结构编程练习:选择结构编程练习简单计算器程序简单计算器程序简单计算器程序简单计算器程序 第16页2024/6/30 周日C语言大学实用教程课件 制作人苏小红17试验试验试验试验3 3:循环结构编程练习:循环结构编程练习:循环结构编程练习:循环结构编程练习猜数游戏猜数游戏猜数游戏猜数游戏 在这个试验中,我们将尝试编写一个猜数游戏程序,在这个
33、试验中,我们将尝试编写一个猜数游戏程序,在这个试验中,我们将尝试编写一个猜数游戏程序,在这个试验中,我们将尝试编写一个猜数游戏程序,这个程序看上去有些难度,不过假如你按以下要求这个程序看上去有些难度,不过假如你按以下要求这个程序看上去有些难度,不过假如你按以下要求这个程序看上去有些难度,不过假如你按以下要求以循序渐进方式进行编程实现,你就会发觉其实这以循序渐进方式进行编程实现,你就会发觉其实这以循序渐进方式进行编程实现,你就会发觉其实这以循序渐进方式进行编程实现,你就会发觉其实这个程序是很轻易实现。先编写第一个程序,然后试个程序是很轻易实现。先编写第一个程序,然后试个程序是很轻易实现。先编写第
34、一个程序,然后试个程序是很轻易实现。先编写第一个程序,然后试着在第一个程序基础上编写第二个程序,着在第一个程序基础上编写第二个程序,着在第一个程序基础上编写第二个程序,着在第一个程序基础上编写第二个程序,。程序程序程序程序1 1:编程先编程先编程先编程先由计算机由计算机由计算机由计算机“想想想想”一个一个一个一个1 1到到到到100100之间数之间数之间数之间数请人猜,假如人猜对了,则计算机给出提醒:请人猜,假如人猜对了,则计算机给出提醒:请人猜,假如人猜对了,则计算机给出提醒:请人猜,假如人猜对了,则计算机给出提醒:“Right!”Right!”,不然提醒:不然提醒:不然提醒:不然提醒:“W
35、rong!”Wrong!”,并告诉人所,并告诉人所,并告诉人所,并告诉人所猜数是大猜数是大猜数是大猜数是大(Too high)(Too high)还是小还是小还是小还是小(Too low)(Too low),然后结束游,然后结束游,然后结束游,然后结束游戏。要求每次运行程序时机器所戏。要求每次运行程序时机器所戏。要求每次运行程序时机器所戏。要求每次运行程序时机器所“想想想想”数不能都是数不能都是数不能都是数不能都是一样。一样。一样。一样。第17页2024/6/30 周日C语言大学实用教程课件 制作人苏小红18猜数游戏用到库函数猜数游戏用到库函数猜数游戏用到库函数猜数游戏用到库函数 随机函数随机
36、函数随机函数随机函数srandsrand为函数为函数为函数为函数rand()rand()设置随机数种子来实现对函数设置随机数种子来实现对函数设置随机数种子来实现对函数设置随机数种子来实现对函数randrand所产所产所产所产生伪随机数生伪随机数生伪随机数生伪随机数“随机化随机化随机化随机化”经过键入随机数种子,产生经过键入随机数种子,产生经过键入随机数种子,产生经过键入随机数种子,产生0,1000,100之间之间之间之间随机数随机数随机数随机数scanf(%u,&seed);scanf(%u,&seed);srand(seed);srand(seed);magic=rand()%100+1;m
37、agic=rand()%100+1;第18页2024/6/30 周日C语言大学实用教程课件 制作人苏小红19#includeinclude#includeinclude main()main()intint magic;magic;intint guess;guess;intint counter;counter;unsigned intunsigned int seed;seed;printf(Please enter seed:);printf(Please enter seed:);scanf(%u,&seed);scanf(%u,&seed);srand(seed);srand(see
38、d);magic=rand()%100+1;magic=rand()%100+1;counter=0;counter=0;dodo printf(Please guess a magic number:);printf(Please guess a magic number:);scanf(%d,&guess);scanf(%d,&guess);counter+;counter+;ifif(guess magic)(guess magic)printf(Wrong!Too high!n);printf(Wrong!Too high!n);else ifelse if(guess magic)(
39、guess magic)printf(Wrong!Too low!n);printf(Wrong!Too low!n);whilewhile(guess!=magic);(guess!=magic);printf(Right!n);printf(Right!n);printf(counter=%d n,counter);printf(counter=%d n,counter);第19页2024/6/30 周日C语言大学实用教程课件 制作人苏小红20猜数游戏用到库函数猜数游戏用到库函数猜数游戏用到库函数猜数游戏用到库函数 使用计算机读取其时钟值并把该值自动设置为随机使用计算机读取其时钟值并把该值
40、自动设置为随机使用计算机读取其时钟值并把该值自动设置为随机使用计算机读取其时钟值并把该值自动设置为随机数种子,产生数种子,产生数种子,产生数种子,产生0,1000,100之间之间之间之间随机数随机数随机数随机数 函数函数函数函数time()time()返回以秒计算当前时间值,该值被转返回以秒计算当前时间值,该值被转返回以秒计算当前时间值,该值被转返回以秒计算当前时间值,该值被转换为无符号整数并用作随机数发生器种子换为无符号整数并用作随机数发生器种子换为无符号整数并用作随机数发生器种子换为无符号整数并用作随机数发生器种子#include#include srand(time(NULL);sran
41、d(time(NULL);magic=rand()%100+1;magic=rand()%100+1;第20页2024/6/30 周日C语言大学实用教程课件 制作人苏小红21#includeinclude#includeinclude#includeinclude main()main()intint magic;magic;intint guess;guess;int counter;int counter;srand(time(NULL);srand(time(NULL);magic=rand()%100+1;magic=rand()%100+1;counter=0;counter=0;d
42、odo printf(Please guess a magic number:);printf(Please guess a magic number:);scanf(%d,&guess);scanf(%d,&guess);counter+;counter+;ifif(guess magic)(guess magic)printf(Wrong!Too high!n);printf(Wrong!Too high!n);else ifelse if(guess magic)(guess magic)printf(Wrong!Too low!n);printf(Wrong!Too low!n);wh
43、ilewhile(guess!=magic);(guess!=magic);printf(Right!n);printf(Right!n);printf(counter=%d n,counter);printf(counter=%d n,counter);第21页2024/6/30 周日C语言大学实用教程课件 制作人苏小红22 程序程序程序程序2 2:编程先由计算机编程先由计算机编程先由计算机编程先由计算机“想想想想”一个一个一个一个1 1到到到到100100之之之之间数请人猜,间数请人猜,间数请人猜,间数请人猜,假如人猜对了,则结束游戏,并假如人猜对了,则结束游戏,并假如人猜对了,则结束游戏
44、,并假如人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此在屏幕上输出人猜了多少次才猜对此数,以此在屏幕上输出人猜了多少次才猜对此数,以此在屏幕上输出人猜了多少次才猜对此数,以此来反应猜数者来反应猜数者来反应猜数者来反应猜数者“猜猜猜猜”水平水平水平水平,不然计算机给出提,不然计算机给出提,不然计算机给出提,不然计算机给出提醒,告诉人所猜数是太大还是太小,直到人猜醒,告诉人所猜数是太大还是太小,直到人猜醒,告诉人所猜数是太大还是太小,直到人猜醒,告诉人所猜数是太大还是太小,直到人猜对为止。对为止。对为止。对为止。试验试验试验试验3 3:循环结构编程练习:循环结构编程练习:循环结构
45、编程练习:循环结构编程练习猜数游戏猜数游戏猜数游戏猜数游戏 第22页2024/6/30 周日C语言大学实用教程课件 制作人苏小红23 程序程序程序程序3 3:编程先由计算机编程先由计算机编程先由计算机编程先由计算机“想想想想”一个一个一个一个1 1到到到到100100之之之之间数请人猜,假如人猜对了,则结束游戏,并间数请人猜,假如人猜对了,则结束游戏,并间数请人猜,假如人猜对了,则结束游戏,并间数请人猜,假如人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此在屏幕上输出人猜了多少次才猜对此数,以此在屏幕上输出人猜了多少次才猜对此数,以此在屏幕上输出人猜了多少次才猜对此数,以此来反
46、应猜数者来反应猜数者来反应猜数者来反应猜数者“猜猜猜猜”水平,不然计算机给出提水平,不然计算机给出提水平,不然计算机给出提水平,不然计算机给出提醒,告诉人所猜数是太大还是太小,醒,告诉人所猜数是太大还是太小,醒,告诉人所猜数是太大还是太小,醒,告诉人所猜数是太大还是太小,最多能够最多能够最多能够最多能够猜猜猜猜1010次,假如猜了次,假如猜了次,假如猜了次,假如猜了1010次仍未猜中话,则结束游次仍未猜中话,则结束游次仍未猜中话,则结束游次仍未猜中话,则结束游戏。戏。戏。戏。试验试验试验试验3 3:循环结构编程练习:循环结构编程练习:循环结构编程练习:循环结构编程练习猜数游戏猜数游戏猜数游戏猜
47、数游戏 第23页2024/6/30 周日C语言大学实用教程课件 制作人苏小红24#includeinclude#includeinclude#includeinclude main()main()intint magic;magic;intint guess;guess;intint counter;counter;srand(time(NULL);srand(time(NULL);magic=rand()%100+1;magic=rand()%100+1;counter=0;counter=0;dodo printf(Please guess a magic number:);printf(
48、Please guess a magic number:);scanf(%d,&guess);scanf(%d,&guess);counter+;counter+;ifif(guess magic)(guess magic)printf(Wrong!Too high!n);printf(Wrong!Too high!n);else ifelse if(guess magic)(guess magic)printf(Wrong!Too low!n);printf(Wrong!Too low!n);elseelseprintf(Right!n);printf(Right!n);whilewhile
49、(guess!=magic)(guess!=magic)&(counter 10)&(counter 10););printf(counter=%d n,counter);printf(counter=%d n,counter);第24页2024/6/30 周日C语言大学实用教程课件 制作人苏小红25 程序程序程序程序4 4:编程先由计算机编程先由计算机编程先由计算机编程先由计算机“想想想想”一个一个一个一个1 1到到到到100100之间数请之间数请之间数请之间数请人猜,假如人猜对了,并在屏幕上输出人猜了多少人猜,假如人猜对了,并在屏幕上输出人猜了多少人猜,假如人猜对了,并在屏幕上输出人猜了多
50、少人猜,假如人猜对了,并在屏幕上输出人猜了多少次才猜对此数,以此来反应猜数者次才猜对此数,以此来反应猜数者次才猜对此数,以此来反应猜数者次才猜对此数,以此来反应猜数者“猜猜猜猜”水平,且水平,且水平,且水平,且结束游戏,不然计算机给出提醒,告诉人所猜数是结束游戏,不然计算机给出提醒,告诉人所猜数是结束游戏,不然计算机给出提醒,告诉人所猜数是结束游戏,不然计算机给出提醒,告诉人所猜数是太大还是太小,最多能够猜太大还是太小,最多能够猜太大还是太小,最多能够猜太大还是太小,最多能够猜1010次,次,次,次,假如猜了假如猜了假如猜了假如猜了1010次仍次仍次仍次仍未猜中话,则停顿此次猜数,然后继续猜下