六循环目的学习C语言的for和while语句的用法.DOC

六循环目的学习C语言的for和while语句的用法.DOC

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验六 循环(二) 一、实验目的 1.学习C语言的for和while语句的用法。 2.编写程序,学习使用多组数据进行输入。 二、实验要求 1.下面给出程序的,实验前阅读并写出运行结果,试验时运行验证。 2.仅给出实验题目的,实验前编写好程序,实验时编辑、调试、运行,直到确定结果正确为止。 三、实验内容 题目描述有多组数据时,意味着我们并知道输入有多少行?但服务器是从文件里读入数据的,当读到文件末尾时,我们就让它自动跳出循环,具体使用下面的形式: While(scanf(“%d”,a)!=EOF) { 在这里根据题意来编写代码; } 注意:EOF代表文件尾,也可以使用-1 While(scanf(“%d”,a)!=-1) { 在这里根据题意来编写代码; } 1. 三角形面积 林大OJ 13题 Time Limit 1000ms Memory Limit 65536K description 已知三角形的底和高,求出三角形的面积。 每行输入底和高 每行输出三角形的面积。精确到三位小数。 input 输入数据有多组,每组1行,即底x和高y,这2个数是实数。 output 输出三角形的面积,保留3位小数。 sample_input 1 2 3 4 5 6 sample_output 1.000 6.000 15.000 提示:本题多组输入,要仔细观察下面的代码 参考代码如下: #include stdio.h #include stdlib.h int main() { double x,y; while(scanf(%lf%lf,x,y)!=-1) //这句是处理多组输入的, //不停的读入2个实数,直到读不到为止! { printf(%.3lf\n,0.5*x*y); } return 0; } 一定要注意:本题还可以如下来做: #include stdio.h #include stdlib.h int main() { double x,y; while(scanf(%lf,x)!=-1) //这句是处理多组输入的,读入1个数 { scanf(%lf,y);//在循环里面读入第2个数 printf(%.3lf\n,0.5*x*y); } return 0; } 也就是while的条件里至少要读入1个数。 2. 寻找吕布 林大OJ 11题 Time Limit 1000ms Memory Limit 65536K description 三国里面吕布第一,赵云第二,典韦、关羽和马超分别是第3、第4和第5名,这是按武将的勇猛值和必杀技值的和来排名的,即武术值=勇猛值+必杀技值,下面给出这5人的勇猛值和必杀值,请你找出吕布的武术值。 input 输入数据有多组,每组数据2行,第一行是5人的勇猛值,第二行是5人的必杀技值。勇猛值和必杀值是整数哦(32位) output 输出吕布的武术值。 sample_input 1 2 3 4 5 1 2 3 4 5 20 21 22 45 87 1 100 8 99000 23 sample_output 10 99087 hint 吕布的勇猛值和必杀技值都是第一的! 思考:这题就是要计算第1行5个数的最大值,再计算第2行5个数的最大值,然后相加输出就行。 参考代码: #include stdio.h #include stdlib.h int main() { int j,tmp,n=2; int ym=0,bs=0;//勇猛 必杀 的缩写 while( scanf(%d,tmp)!=EOF ) //先输入第1行第1个数 { ym=0,bs=0; //这句太关键了,多组数据,每组开始时都初始化 if (ymtmp) ym=tmp; for(j=1;j=4;j++) //然后读入第1行的后4个数,比大小 { scanf(%d,tmp); if(ymtmp) ym=tmp; } for(j=1;j=5;j++) //直接读入第2行的5个数,找出最大值 { scanf(%d,tmp); if(bstmp) bs=tmp; } printf(%d\n,bs+ym); } return 0; } 为啥要在while里面加上这句:ym=0,bs=0; 3. 苍之涛----求和 林大OJ 29题 Time Limit 1

文档评论(0)

fengruiling + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档