实验4-循环结构_第1页
实验4-循环结构_第2页
实验4-循环结构_第3页
实验4-循环结构_第4页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 C 语言程序设计实验报告实验序号: 4实验项目:循环结构一、实验目的及要求1.熟悉掌握while 语句、 do-while 语句和 for 语句实现循环的方法2.掌握在程序设计中用循环的方法实现一些常用算法3.掌握嵌套循环的使用方法4.比较 3 种循环的异同二、实验设备(环境)及要求使用 Visual C+ 6.0 ; windows 系列操作系统的环境。三、实验内容与步骤1分别用 while 、 do-while 、 for 语句编程,求数列前20 项之和: 2/1, 3/2, 5/3, 8/5,13/8 ··【算法提示】1)定义实变量 sum、 term、 a、 b、

2、 c,整变量 i2)初始化: sum=0,分子 a=2,分母 b=13)初始化: i (计数器) =14)计算第 i 项 term =a/b5)累加 sum=sum+term6)计算 c=a+b,更新 b= a,更新 a=c7)计数器加 1, i+8)重复 4、 5、 6、7,直到 i>209)输出 2 位精度的结果3 次测试结果,数列前20 项之和 sum=236 块砖 36 人搬,男搬4 女搬 3,小孩 2 人搬 1 砖。要求一次全搬完,问男、女、小孩各若干(人)?算法提示:设x, y, z 表示男、女、小孩的人数,则有不定方程:x+y+z=364x+3y+z/2=36对 x,y,z

3、所有可能的组合测试出满足条件的解。x、 y、z 的取值范围:x: 19,步长 1y: 1 12 ,步长 1z: 236,步长 2对 x,y,z所有可能的组合:9× 12×( 36/2 )重复测试条件:4*x+3*y+z/2=36 &&x+y+z=36是否成立,若成立则打印出x、 y、 z 的值。上机运行结果有几组解?男、女、小孩各多少人?3设整数满足条件:被 3 除余 2,被 5 除余 4,被 7 除余 3,请编程求出满足该条件的最小的 10 个自然数 ( 要求必须使用 while 语句 )运行结构截图:4编写程序, 输入一个长整型正数,判断该数是几位数(要

4、求必须使用do-while 语句 )运行结构截图:5某生产豪华游轮的造船厂,第一年生产3 艘,从第二年开始,每年产量是前一年的产量减去半艘再翻一番,请问第10 年产量多少艘?10 年总产量多少艘?(要求必须使用for 语句 )运行结构截图:6把一张 10 元的人民币兑换成2 元和 1 元的纸币, 请问有多少种兑换方法?输出所有的兑换方法。运行结构截图:7参考例题3-23,写一程序输出以下图案:(要求必须使用循环)*运行结构截图:8【选做题】在3 位自然数中,统计有2 个位数相等,但3 个数字不全相等的偶数的个数,并输出所有满足条件的数。运行结构截图:四、分析与讨论对上机实践结果进行分析,上机的

5、心得体会。五、教师评语成绩签名:日期:附源程序清单:1.方法 1: 用 while语句:#include<stdio.h>int main()int i=1;double sum=0,term,a=2,b=1,c;while(i<=20)term=a/b;sum=sum+term;c=a+b;b=a;a=c;i+;printf("sum=%.2fn",sum);return 0;方法 2:用 do-while 语句:#include<stdio.h>int main()int i=1;double sum=0,term,a=2,b=1,c;do

6、term=a/b;sum=sum+term;c=a+b;b=a;a=c;i+;while(i<=20);printf("sum=%.2fn",sum);return 0;方法 3: 用 for语句:#include<stdio.h>int main()int i;double sum=0,term,a=2,b=1,c;for(i=1;i<=20;i+)term=a/b;sum=sum+term;c=a+b;b=a;a=c;printf("sum=%.2fn",sum);return 0;2.#include<stdio.h&

7、gt;int main()int x,y,z,i=0;for(x=1;x<=9;x+)for(y=1;y<=12;y+)for(z=2;z<=36;z=z+2)if(4*x+3*y+z/2=36&&x+y+z=36)i+;printf(" 有 %d 种方法 .其中 :nx=%dny=%dnz=%dn",i,x,y,z);return 0;3.#include <stdio.h>int main()int x=0,i=0;while (i<10)if (x%3=2 && x%5=4 && x%

8、7=3)printf("%dn",x);i+;x+;return 0;4.#include <stdio.h>#include<math.h>int main()long x;int i=0;printf("plesae input x (x 为长整形正数)n");scanf("%ld",&x);dox=x/10;i+;while(x>0);printf("x 为 %d 位数 :n",i);return 0;5.#include <stdio.h>int main(

9、)int i, x=3,sum=3;for(i=2;i<=10;i+)x=(x-0.5)*2;sum=x+sum;printf(" 第十年的产量是%dn",x);printf(" 前十年的总产量是%dn",sum);return 0;6.#include <stdio.h>int main()int i,j;for(i=0;i<=10;i+)for(j=0;j<=5;j+)if(i*1+j*2=10)printf("10 元换成 :%d 张 1 元%d 张 2 元 n",i,j);return 0;7.#

10、include <stdio.h>int main()int i,j;for (i=1;i<=7;+i)for(j=1;j<=(i<4?4-i:i-4);+j)printf(" ");for(j=1;j<=(i<4?i*2-1:15-2*i);+j)printf("*");for(j=1;j<=(i<4?4-i:i-4);+j)printf(" ");printf("n");return 0;8./* 统计有 2 个位数相等,但3 个数字不全相等的3 位自然偶数的个数*/#include <stdio.h>int main() int x,a,b,c,i=0; for(x=100;x<1000;x+)if(x%2=0) / 判断是否为偶数a=x%10;/ 个位b=(x/10)%10;/ 十位c=x/100;/ 百位if(a=b && b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论