西安交通大学 C++ 上机实验.docx

上传人:b****9 文档编号:25582954 上传时间:2023-06-09 格式:DOCX 页数:15 大小:437.75KB
下载 相关 举报
西安交通大学 C++ 上机实验.docx_第1页
第1页 / 共15页
西安交通大学 C++ 上机实验.docx_第2页
第2页 / 共15页
西安交通大学 C++ 上机实验.docx_第3页
第3页 / 共15页
西安交通大学 C++ 上机实验.docx_第4页
第4页 / 共15页
西安交通大学 C++ 上机实验.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

西安交通大学 C++ 上机实验.docx

《西安交通大学 C++ 上机实验.docx》由会员分享,可在线阅读,更多相关《西安交通大学 C++ 上机实验.docx(15页珍藏版)》请在冰豆网上搜索。

西安交通大学 C++ 上机实验.docx

西安交通大学C++上机实验

西安交通大学实验报告

一.实验目的

(1)了解了C++程序中的几种控制结构,包括分支和循环。

(2)初步学习运用了for循环、while循环、do{}while循环,能够简单的用于一些问题的解答。

(3)熟悉了两种分支:

两重分支和多重分支,并将两重分支多次运用于将解决实际问题。

(4)了解了许多有趣的数字,并使用程序获得有关这些数字的知识。

二.实验内容

(-)实验题目一:

第3章第2题

1.程序源代码

#include

usingnamespacestd;

intmain()

{

doublex,y;

cout<<"请输入x的值";

cin>>x;

if(x<0)

{

y=x*x;

}

else

{

y=x*x*x+2*x*x+x;

}

cout<<"y="<

return0;

}

2.实验结果

(二)实验题目二:

编程计算n!

n由用户输入,输入的n不合法时给出提示

【问题扩展】你写的程序能计算多大的数的阶乘。

再大了呢?

怎么办呢?

1.程序源代码

#include

usingnamespacestd;

intmain()

{

intm,i;

doublen,sum;

cout<<"请输入n的值";

cin>>n;

i=1;

sum=1;

m=n;

if(n-m!

=0)

{

cout<<"输入的n不合理"<

}

else

{

if(n<=0)

{

if(n==0)

{

cout<<"阶乘sum=1"<

}

else

{

cout<<"输入的n不合理"<

}

}

else

{

do

{

sum=i*sum;

i=i+1;

}while(i<=n);

cout<<"阶乘sum="<

}

}

return0;

}

2.实验结果

【问题扩展】为了得到更大数的阶乘,采用范围更广的双精度型,使得能表示的结果的范围更大,即能够计算获得更大的数的阶乘,换句话说就是n!

<=1.8E+308

程序源代码

#include

usingnamespacestd;

intmain()

{

intn;

doublesum;

n=1;

sum=1;

do

{

sum=sum*n;

n=n+1;

cout<

="<

}while(n<=200);

return0;

}

实验结果

故最多只能计算170的阶乘,在n=171时将超过范围。

(三)实验题目三:

第3章第12题前两小题,即

(1)和

(2)题(必做题)

小题

(1)

1.程序源代码

#include

usingnamespacestd;

intmain()

{

intn,sum,Fn,i,b,m;

cout<<"请输入n的值";

cin>>n;

m=1;

sum=0;

i=1;

b=0;

if(n<0)

{

cout<<"输入不合理"<

}

else

{

if(n==0)

{

cout<<"F0=0"<

cout<<"前n项和sum=0"<

}

else

{

do

{

Fn=b+m;

sum=sum+Fn;

b=Fn;

m=b-m;

i=i+1;

}while(i<=n);

cout<<"前n项和sum="<

cout<<"第n项Fn的值为"<

}

}

return0;

}

2.实验结果

小题

(2)

1.程序源代码

#include

#include

usingnamespacestd;

intmain()

{

doublefn,F1,F2;

doublef0=0,f1=1,sum=0,n=0;

do

{

sum=sum+f0/f1;

fn=f0+f1;

F1=f0/f1;

F2=f1/fn;

f0=f1;

f1=fn;

n=n+1;

}while(fabs(F1-F2)>=10E-8);

cout<<"n="<

cout<<"f"<

cin>>a;

cin>>n;

sum=0;

m=a;

for(i=1;i<=n;i++)

{

cout<

sum=a+sum;

a=m+a*10;

}

cout<

return0;

}

2.实验结果

(五)实验题目五:

第3章第16题(必做题)

1.程序源代码

#include

usingnamespacestd;

intmain()

{

inta,b,c,d;

for(a=1;a>=0;a=a-1)//1:

是小偷0:

不是

for(b=1;b>=0;b=b-1)

for(c=1;c>=0;c=c-1)

for(d=1;d>=0;d=d-1)

if((a==0)+(c==1)+(d==1)+(d==0)==3&&a+b+c+d==1)//4人的说法中有3个真的,且只有一个小偷

{

cout<<"A"<<(a?

"":

"不")<<"是小偷。

"<

cout<<"B"<<(b?

"":

"不")<<"是小偷。

"<

cout<<"C"<<(c?

"":

"不")<<"是小偷。

"<

cout<<"D"<<(d?

"":

"不")<<"是小偷。

"<

}

return0;

}

2.实验结果

(六)实验题目六:

求所有水仙花数之和,再计算平均数。

1.程序源代码

#include

usingnamespacestd;

intmain()

{

inta,b,c,s,i,n;

doublep;

s=0;

n=0;

for(i=100;i<1000;i++)

{

a=i/100;

b=(i-a*100)/10;

c=(i-a*100-b*10)/1;

if(a*a*a+b*b*b+c*c*c==i)

{

s=s+i;

n=n+1;

cout<

}

}

p=s/n;

cout<<"水仙花数的总和s="<

return0;

}

2.实验结果

(七)实验题目七:

找出1000-2000之间所有整数中满足如下条件的数,该数的高端两位数字的和与低端两位数字的和值相等,如1001、1120。

程序能输出所有满足条件的数及它们的总个数。

1.程序源代码

#include

usingnamespacestd;

intmain()

{

inta,b,c,d,i,n;

n=0;

for(i=1000;i<=2000;i++)

{

a=i/1000;

b=(i-a*1000)/100;

c=(i-a*1000-b*100)/10;

d=(i-a*1000-b*100-c*10)/1;

if(a+b==c+d)

{

n=n+1;

cout<

}

}

cout<<"这类数的个数n="<

return0;

}

2.实验结果

三.个人小结

经过这次上机实验,我学习掌握并应用了不同的循环和分支。

同时了解了C++中的有关循环和分支的知识,初步学会使用ifelse语句、switch语句来实现分支结构,学会了使用while语句、dowhile语句、for语句来实现循环结构,并在解决实际问题的编程中运用这些循环和分支,尤其是两重分支,它给我我们带来了更加简洁的算法。

除此之外,还对于一些特殊的数字有了初步的了解。

同时,自己对C++有了更加具体深入的体会,增加了对该门课程的兴趣。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1