资源描述:
《大一上学期C++课程设计.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实习题目一1.输岀1至100之间每位数的乘积大于每位数的和的数,例如对于数字12,有1*2<1+2,故不输岀该数;对于27,有2*7>2+7,故输岀该数。题目分析:该题目要求验证并输岀1到100之间满足条件的数,故要用for循环来实现依次验证并输岀。算法设计:利用for循环语句,依次进验证,并输岀结果。inti,a,b;for(i=1;i<100;i++){a=i/10;b=i%10;if(a*b>a+b)cout<2、"#include""voidTestA_1(){inti,a,b;for(i=1;i<100;i++){a=i/10;b=i%10;if(a*b>a+b)cout<EsefaceVJ^.ffn^IrProJeetsV^fclMtebuc^Exfc^.nr*424?75V?5253545556575876777®79S28334E^essanykeytoc*ntinue_五2B664656692■436B46实习题目二编写一个程序,求岀所有的“水仙花数”。所谓
3、水仙花数,是指一个三位数,其各位数字的立方和恰好等于该数本身。例如153=1*1*1+5*5*5+3*3*3,所以153是水仙花数。题目分析:此题目要求验证并输岀满足条件的三位数,因为三位数较好操作,所以用简单程序。算法设计:依次提取三位数的各位数字(百,十,个)提取各位数字:百位:a=i/100;十位:c=i%100/10;个位:d=i/100%10。调试报告:由于把对变量赋值的语句位置放错,导致编译时不报错但得不到正确的结果。附录:#include""#include""voidTestA_2(inti){inta,b,c,d;c
4、out«"水仙花数是:"<5、次输入的数和当前最值比较,同时更新最值。调试报告:由于没有注意到i是从0开始循环到(n-1)而不是从1到n,导致编译错误。附录:#include""#inelude""voidTestA_3(){inti,n,k,max,min,a[100];cout«"请输入n的值:";cin»n;cout«"请输入"<>a[i];for(i=1,max=a[0],min=a[0];i<=n-1;i++){if(a[i]>max)max=a[i];elseif(a[i]6、n=a[i];}cout«"最大数是:"vvmaxvvendl;cout«"最小数是:"vvminvvendl;}运行结果:实习题目四4.对两个有序数组进行合并:设有如下数组A、B,并假设两个数组的元素都已经有序(从大到小降序排列)。编程序,合并A、B数组形成一个新的数组C,并使C的元素仍有序(从大到小降序排列)。intA[10]={123,88,86,86,33,15,7,0,-1,-3};intB[10]={86,69,51,50,27,19,15,12,5,2};题目分析:该题目要求合并两个已经有序的数组,所以要充分利用数组有序
7、这一特点。现在要做的就是把数字从大到小存入C[20]中,这就要比较A,B中较大数。算法设计:按照a[0],a[1],…,a[19]的顺序分别与b[0],b[1],…,b[19]循环进行比较。b中已存数c中即可。每次找到较大数后将最大数也按循环存储到c[0],c[1],…,c[19]中,每存储一次就将a与组和c数组的角标加1即可控制循环当a与b中任何一个角标到9时结束循环,并将另一个数组中剩余数字按顺序存入数组调试报告:由于在while()后丢失分号,编译时报错。附录:#include""#include""voidTestB_4(){
8、intA[10]={123,88,86,86,33,15,7,0,-1,-3};intB[10]={86,69,51,50,27,19,15,12,5,2};intC[20];inti=0,j=0,k=0;while(k