《C程序设计实验报告(实验四--循环结构程序设计)(共6页).doc》由会员分享,可在线阅读,更多相关《C程序设计实验报告(实验四--循环结构程序设计)(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上池州学院实验报告姓 名_ 学 号 专 业 年级 1 成 绩_课程名称:语言程序设计 教师签字_实验项目实验四 循环结构程序设计指导教师实验目的1通过本实验,加深对循环控制结构有关概念的理解。2熟练掌握while、do-while和for三种循环控制语句的特点,掌握循环结构程序设计和调试方法。3掌握二重循环结构程序的设计方法。实验仪器计算机实验内容1用while循环实现数据统计问题。数据统计问题:从键盘输入一批任意数量的整数,统计其中不大于100的非负数数值的个数。2编写并调试程序,使用do-while循环控制语句实现上面的数据统计问题。调试数据仍参照上面给出的几种情况
2、设计使用。3编写并调试程序,使用for循环控制语句实现上面的数据统计问题。4阶乘累加问题。编写程序,求1+2!+3!+n!的值。实验指导1用while循环实现数据统计问题。 编程分析由于输入数据个数是不确定的,因此每次执行程序时,循环次数都是不确定的。在进行程序设计时,确定循环控制的方法是本实验的一个关键问题。循环控制条件可以有多种确定方法: 使用一个负数作为数据输入结束标志。 输入一个数据后通过进行询问的方式决定是否继续输入下一个数据。 参考程序参考程序一/* 使用负数作为数据输入结束标志的程序 */#include stdio.hvoid main() int m,counter=0; w
3、hile(1) printf(符合要求的整数个数为: %dn,counter);l参考程序二/* 通过进行询问的方式决定是否继续输入下一个数据的程序 */#include stdio.hvoid main() int m,counter=0; char ask; while(1) printf(请输入一个整数:); scanf(%d,&m); getchar(); if(m=0&m=100)counter+; printf(继续输入下一个数据?(Y/N); ask=getchar(); getchar(); if(ask!=y&ask!=Y)break; printf(n); printf(符
4、合要求的整数个数为: %dn,counter); 程序调试这里只对“参考程序一”的调试数据进行设计。该程序输入数据时,应考虑多种数据组合,对每一组数据察看并分析结果。例如: 输入的一组数据之间全部以空格分隔,只有最后一个数为负数,以回车键结束。如:16 35 7 10 输入的一组数据之间全部以空格分隔,在负数之后又有正数数据,最后一个数不为负数,以回车键结束。如:16 35 7 10 96 17 输入的一组数据之间全部以空格分隔,输入数据中有多个负数,以回车键结束。如:16 35 7 10 96 17 87 7 输入的数据中有大于100的整数。如:16 35 7 10 96 117 87 26
5、7 66 数据之间既用空格分隔,也用回车键分隔。如:76 35 376 22 717 96 67 96 17 87 719 66 98 2 -16 31 每输入一个数据后均按回车键。 输入的第一个数据即为负数。 在输入的数据中使用数值很大的整数。如:17 66778 98765 17 899 -109 87 2编写并调试程序,使用do-while循环控制语句实现数据统计问题。 参考程序/* 使用负数作为数据输入结束标志的程序 */ 调试指导调试数据仍参照上面给出的几种情况设计使用。3编写并调试程序,使用for循环控制语句实现上面的数据统计问题。 参考程序/* 用for循环控制语句实现的数据统计
6、问题程序 */注意:for循环控制语句的一般格式通常有三个表达式,本参考程序中使用的for循环控制语句在格式上只有两个表达式。请读者注意学习这种用法。4阶乘累加问题。 编程分析 本实验内容是求解阶乘问题。 求n!用一个循环即可实现。 求1+2!+3!+n!的值,需要在求n!程序之外增加一个外重循环。 参考程序/* 求1+2!+3!+n!程序 */ 程序调试 输入一个不大的正整数,分析程序执行结果。 输入一个零或者负数,分析程序执行结果。 输入一个很大的正整数,分析程序执行结果。 当程序结果不符合要求时,修改程序,直到对任何输入数据都能输出正确的执行结果,或者给出一个明确的提示信息。例如,当输入
7、数据非法时,给出一个恰当的提示信息。系统实施(程序流程图、重要过程说明、参数设置、变量的说明等)开始输入m,counterCounter=0M=100NM0YYN输出 counter=counter+1=结束测试报告(调试输入数据、结果数据或状态。给出一、两个不同的输入和结果)1. 输入16 35 7 10 输出 3输入16 35 7 10 96 17 输出5输入16 35 7 10 96 17 87 7 输出6输入16 35 7 10 96 117 87 267 66 输出5输入17 66778 98765 17 899 -109 87 输出34.输入3 输出9结果分析(碰到的问题、如何解决
8、、有何体会)程序结构掌握不熟,有待加强。多做习题,多看书。附录(主要的源程序代码)1#include stdio.hvoid main() int m,counter=0; while(1) printf (“input:m”); scanf (“%d”,&m); if (m0) break; if(m=100) counter+; printf(“n”); printf(%dn,counter);2.#include “stdio.h” Void main() int m,counter=0;do printf(“input:m”); scanf(“%d”,&m) if(m0) break;
9、 if(m=100) counter+; printf(“n”); while(1)printf(“%dn”,counter);3.#include “stdio.h” void main() int m,counter;for(counter=0) printf(“input:m”); scanf(“%d”,&m); if(m0) break; if(m=100) counter+; printf(“n”);Printf(“%dn”,counter); 4.#include “stdio.h” main() int s=1,t,i,n;printf(“input n:”);scanf(“%d”,&n);s=0;t=1;for(i=1;i=n;i+) t=t*I; s=s+t;printf(“s=%dn”,s); 专心-专注-专业