c++实验3 程序结构与数组_第1页
c++实验3 程序结构与数组_第2页
c++实验3 程序结构与数组_第3页
c++实验3 程序结构与数组_第4页
c++实验3 程序结构与数组_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

上机实验指导 实验3:C+语言程序结构、数组说明:所有的程序和文档都建立在学生学号_名字_第三次实验文件夹内,最终以压缩文件的形式提交到指定邮箱。第一部分 基础练习 1用牛顿迭代法求方程:3x3+2x2-8x-5=0,在x=1.5附近的根。u 要求:前后两次求出的x的差的绝对值小于10-6 ,则为结果。u 思路:如图所示,设xn为一个接近xa的近似根,过(xn, f(xn) 点做切线,其切线方程为:式中只有xn+1为未知量,将它放在等号的左边,即:上式就为牛顿迭代公式。 源代码:#include #include using namespace std;int main()float x1,x0,f,f1;x1=1.5;do x0=x1;f=3*x0*x0*x0+3*x0*x0-8*x0-5;f1=9*x0*x0+4*x0-8;x1=x0-f/f1;while (fabs(x1-x0)1e-6);cout该方程的根为:x1endl;return 0;截图: u 思考题及问题 更改初值,观察程序的运行结果。当x1=0时,运算截图为 如果程序总是无法结束,又不是死循环,程序应该如何修改?程序无法结束,可能因为迭代所求根总在不断地振荡,无法得到精度内的结果,可以适当的降低精度,使振荡值落在精度范围内。2编程序,输出以下图形 * * * * * * * * *1 13 135 135713579ABBBCCCCCDDDDDDD CCCCC BBB Au 要求应该使用双重循环。外循环体中包含两个并列的for循环语句,分别控制每行输出的空格符和非空格字符(如:星号);用cout “n”; 语句控制输出一行字符之后回车换行。源程序:#include using namespace std;int main () int i,j; for(i=1;i=5;i+) for(j=1;j=i;j+) cout0;j-)cout*;coutn; coutn; for(i=1;i=5;i+) for(j=1;j=i;j+) cout0;j-) cout*; coutn; coutn; for(i=1;i0;j-) cout ; for(j=1;j=i;j+) cout2*j-1; coutn; coutn; for(i=1;i0;j-) cout ; for(j=1;j=2*i-1;j+) cout (char)(A+i-1); coutn; for(i=1;i=3;i+) for(j=1;j=i+1;j+) cout0;j-) cout(char)(D-i); coutn; return 0;截图:u 思考题 如果输出10行的图形,应如何修改程序?#include #include using namespace std;int main()int i,j; for(i=1;i=10;i+) for(j=1;j=i;j+) cout0;j-)cout*;coutn; coutn; for(i=1;i=10;i+) for(j=1;j=i;j+) cout0;j-) cout*; coutn; coutn; for(i=1;i0;j-) cout ; for(j=1;j=i;j+) coutsetw(2)2*j-1; coutn; coutn; for(i=1;i0;j-) cout ; for(j=1;j=2*i-1;j+) cout (char)(A+i-1); coutn; for(i=1;i=9;i+) for(j=1;j=i+1;j+) cout0;j-) cout(char)(J-i); coutn; return 0; 如果输出图形向右平移25个字符位置,程序应该如何修改?源程序:#include using namespace std;int main () int i,j; for(i=1;i=5;i+) for(j=1;j=i+25;j+) cout0;j-)cout*;coutn; coutn; for(i=1;i=5;i+) for(j=1;j=i+25;j+) cout0;j-) cout*; coutn; coutn; for(i=1;i0;j-) cout ; for(j=1;j=i;j+) cout2*j-1; coutn; coutn; for(i=1;i0;j-) cout ; for(j=1;j=2*i-1;j+) cout (char)(A+i-1); coutn; for(i=1;i=3;i+) for(j=1;j=i+26;j+) cout0;j-) cout(char)(D-i); coutn; return 0;截图:3若干个数据首尾相连,构成一个圆环,找到连续的4个数之和最大的一段。u 要求:从键盘输入数据,当输入-1时结束输入,输出其中连续的4个数之和最大的一段的起始数据的位置及这4个数的和。源程序:#include using namespace std;int main ()int i,j,m,n=0,max=0,sum=0;int a20;couti;while(i!=-1)an=i;n+;cini;for(j=0;jmax) max=sum; m=j;cout输出圆环数据:;for(j=0;jn;j+)coutaj ;coutn从第m+1个数据开始的连续四个数据和最大,为:maxendl; return 0;截图:第二部分 自测练习1. 猜数游戏编程先由计算机“想”一个1100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游戏并输出该数。思路-函数说明:int rand();:返回从0,MAX)之间的随机整数,这里的与你所定义的数据类型而定;需#include void srand( unsigned seed );:设置随机数种子,#include time_t time( time_t *time );:返回当前时间,#include 应用举例:srand(time(0); /根据系统时间设置随机数种子int i = rand() % N; /取得区间0,N)的整数如要产生之间随机数,则代码如下:#include using namespace std;#include #include int main() int t; srand(time(0); /seed t = rand() % 10+ 1; / random number 1-10 cout t =10)printf(Sorry, game over!n);break;if(guess=num)printf(You are right, guess %d times.n,i);break;else if(guessnum)printf(Guess too big, try again:);elseprintf(Guess too small, try again:);截图:2排序编程实现将10个整数升序排列。要求:冒泡法排序。冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。l 即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。l 在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。l 如此下去,重复以上过程,直至最终完成排序源程序:#include using namespace std;int main () int i,j,t,a10,k; cout 输入10个整数:;for(i=0;iai;for(i=0;i10;i+)for(j=i+1;jaj)swap(ai,aj);cout输出升序排列的结果:;for(i=0;i10;i+)coutai ;coutendl;return 0;截图: 3. 检验并打印魔方矩阵在下面的55阶魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。17241815235714164613202210121921311182529源程序:#includeusing namespace std;int main() int a55,i,j,k,x,z=0; for(i=0;i5;i+) for(j=0;jaij; int p=0,s=0,q=0; for(k=0,x=0;k5,x5;k+,x+) s+=a0k; q+=ax0; p+=akx; if(s=q&q=p) int y=s; for(i=1,j=1;i5,j5;i+,j+)

温馨提示

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

评论

0/150

提交评论