1、an; s=0;t=a; for(i=1;i=n;i+) s+=t; t=t*10+a;s=a+aa+aaa+aaaa+aaaaaaa(n个)=s return 0;3、编程求出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其中各位数字的立方和等于该数本身,例如153就是一个“水仙花数”,因为153=13+53+33。要求采用枚举法。 int i,j,k,s,p=0;=9; for(j=0;jj+) for(k=0;kk+) s=100*i+10*j+k; if(s!=i*i*i+j*j*j+k*k*k) continue; coutt; p+; if(p%5=0) cout 4、有两队
2、选手每队5人进行一对一的比赛,甲队为A、B、C、D、E,乙队为J、K、L、M、N,经过抽签决定比赛对手名单。规定A不和J比赛,M不和D及E比赛。列出所有可能的比赛名单。【提示:】先固定甲队,A在0号位,B在1号位,依次排列,最后E在4号位;然后乙队排对应的对手,用循环变量j、k、l、m、n分别对应0号位的选择、1号位的选择、依次类推,直到到4号位的选择,每一层循环应剔除上一轮已选过的选手,和指定不与比赛的对手。用变量i统计不同情况数。 int j,k,l,m,n,i=0; for(j=1;5; if(k=j) continue; for(l=0;ll+) if(l=j|l=k) continu
3、e; for(m=0;mm+) if(m=j|m=k|m=l|m=3|m=4) continue; for(n=0;nn+) if(n=j|n=k|n=l|n=m) continue; i+; cout switch(j) case 1:coutJ-B break; case 2:J-C case 3:J-D case 4:J-E switch(k) case 0:K-AK-BK-C case 3:K-DK-E switch(l)L-Al-Bl-Cl-Dl-E switch(m)M-AM-BM-CM-DM-E switch(n)N-AN-BN-CN-DN-E cout (选做题)5、设函数f(
4、x)定义在区间a,b上,f(x)连续且满足f(a)*F(b)0,求f(x)在a,b上的根。采用弦位法,迭代公式为: xi+1= xi+( xi-1- xi)/(f(xi)-f(xi-1)*f(xi)其代换规律为:首先用两端点函数值的绝对值较大者的对应点作为xi-1,较小者作为xi,即如果 |f(a)|f(b)|,则xia,xi-1b。用迭代公式得出xi+1,f(xi+1)。误差定义为: x =( xi-1-xi/(f(xi)-f(xi-1)*f(xi)当x 或f(xi+1)=0则结束运算。否则用(xi,f(xi)代替(xi-1,f(xi-1),用(xi+1,f(xi+1)代替(xi ,f(xi
5、),继续迭代。求方程 xlg(x)=1 的实根的近似值,要求误差不超过0.001。【提示】 令 f(x)=xlgx-1 ,则f(2)-0.3980 ,由此可知f(x)的根在2与3之间。实验六 文本文件的简单应用(1)学会将程序运行的结果存入文本文件(2)学会从文本文件中读取数据,并进行运算。1.范例:修改实验五中的第二题,求出水仙花数后不是在屏幕上显示而是存入文本文件。请在退出程序后,用记事本打开该文本文件,查看结果。【分析】(使用文件的格式) (1)首先,说明一个文件流对象(内部文件)。文件流类型ifstream支持从输入文件中提取数据的操作,而文件流类型oofstream用于完成将数据写入
6、输出文件中各种操作。ifstream ifile ;/定义输入文件,ifile 为文件名,可使用任意标识符 ofstream ofile ; /定义输出文件,ofile 为文件名,可使用任意标识符 特别注意:输入文件用于读操作,输出文件用于写操作。(2)然后打开文件。在文件流对象和磁盘文件名之间建立联系。ifile.open(“d:my_in_file.txt”);ofile.open(“d:my_out_file.txt”);(3)对文件进行读/写操作。可以使用C+的提取运算符()和插入运算符( char ch256; ifstream ifile; ifile.open(e:myself.
7、txt);文件内容: do ifile.getline(ch,255);ch char a255; int i=0,j,k,l; while(ifile.get(ai) if(ai=n) break; i+; while(l) ifileijkl; if(ifile.eof()!=0) break; couta。将所有符合要求的组合存入文本文件中。 int c,a,b,s,i; ofstream ofile; ofile.open(gougu.txt ofile勾股数有: for(c=1;c=500;c+) for(b=1;bb+) for(a=1;aa+) if(a=b) continue; s=c*c; if(s!=a*a+b*b) continue; ofile,setw(7); i+; if(i%4=0) ofile ofile.close();4.编写程序从上题建立的文本文件中读取500以内的勾股弦数并显示在屏幕上。 #include char a1000;文件内容: ifile.getline(a,999); #
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1