实验2答案

更新时间:2024-06-12 16:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验2 选择和循环结构程序设计

1. 求三个整数的最大值和最小值。

1) 定义三个整形变量x1、x2、x3,并通过cin输入变量值 2) 用if-else语句对三个整数进行比较,求出最大值和最小值 3) 用cout显示计算结果

//参考一

#include using namespace std; int main()

{ int x1,x2,x3,max,min;

cout<<\ cin>>x1>>x2>>x3; //求最大值 if(x1>x2) max=x1; else

max=x2; if(x3>max) max=x3; //求最小值 if(x1>x2) min=x2; else

min=x1; if(x3

cout<<\ cout<<\ return 0; }

//参考二

#include void main() {

int x1,x2,x3,max,min;

cout<<\请输入三个整数:\ cin>>x1>>x2>>x3; if(x1>x2)

if(x1>x3) max=x1;

else max=x3; else

if(x2>x3) max=x2; else max=x3;

if(x1

if(x1

if(x2

cout<<\最大值是:\最小值是:\}

//参考三

#include int fmax(int,int); int fmin(int,int); void main() {

int x1,x2,x3,max,min;

cout<<\请输入三个整数:\ cin>>x1>>x2>>x3;

max=fmax(fmax(x1,x2),x3); min=fmin(fmin(x1,x2),x3);

cout<<\最大值是:\最小值是:\}

int fmax(int a,int b) {

if(a>b) return a; else return b; }

int fmin(int a,int b) {

if(a

2. 下面程序统计字符数组c中0、1、2及其他字符出现的次数,分别存放

在变量i0、i1、i2中,统计结束后输出它们的值。要求:分析出现结果的原因,如何修改使结果正确。 #include using namespace std; int main()

{

char c[]=”0123456789001112222”; int i0=0,i1=0,i2=0,i3=0; for (int i=0;i<19;i++) switch(c[i])

{ case’0’:i0++;

case’1’:i1++; case’2’:i2++; default:i3++; }

cout<<”i0=”<

改为

#include using namespace std; int main() {

char c[]=”0123456789001112222”; int i0=0,i1=0,i2=0,i3=0; for (int i=0;i<19;i++) switch(c[i])

{ case’0’:i0++; break ;

case’1’:i1++; break ; case’2’:i2++; break ; default:i3++; }

cout<<”i0=”<

3. 判断用户输入正整数n是否为素数,输出判断结果。

#include #include using namespace std;

int main() { int m,i,k; cout<<\ cin>>m; k=sqrt(m); for (i=2;i<=k;i++) if(m%i==0) break; if(i>k) printf(\ else printf(\ return 0; }

4. 增加实验3的功能,判断用户输入的正整数n是否为素数,直到用户输

入1为止。

1) 用while循环读入正整数n

2) 对于每个正整数n,采用for循环判断是否为素数。 3) 打印输出判断结果

#include #include int main() {

int m,i,k;

cout<<\ cin>>m;

while(m!=1) {

k=sqrt(m);

for (i=2;i<=k;i++) if(m%i==0) break; if(i>k)

printf(\ else

printf(\ cout<<\ cin>>m; }

return 0; }

//参考

#include

#include void main() { int n,k; while(1) { cout<<\请输入正整数:\ cin>>n; if(n==1) break; else if(n<0) { cout<<\输入错误\ continue; } k=(int)sqrt(n); for(int i=2;i<=k;i++) if(n%i==0) break; if(i>k) cout<

5. 编写一个程序实现两个数之间简单的四则运算。在程序中,提示用户按

表达式顺序输入操作数与运算符。

#include using namespace std; int main() {

int x1,x2,r; char c;

cout<<\请输入一个四则运算表达式(形如:3+5 3-5 3*5 3/5):\ cin>>x1>>c>>x2; switch(c)

{ case '+':r=x1+x2; break ; case '-':r=x1-x2; break ; case '*':r=x1*x2; break ;

case '/':r=x1/x2; break ;

default:{cout<<\操作符输入有误\ }

cout<

6. 增加实验5的功能,是程序运行时,能一次完成多个运算,直至用户输

入字符“N”(在程序中,提示用户输入“Y”或“N”以决定是否继续进行四则运算)。

//参考一

#include using namespace std; int main() {

int x1,x2,r; char c,m='Y';

while(m!='n'&&m!='N')

{ cout<<\请输入一个四则运算表达式(形如:3+5 3-5 3*5 3/5):\

cin>>x1>>c>>x2; switch(c)

{ case'+':r=x1+x2; break ; case'-':r=x1-x2; break ; case'*':r=x1*x2; break ; case'/':r=x1/x2; break ; default: {

cout<<\操作符输入有误,请重新输入:\}

}

cout<>m; }

return 0; }

//参考二

#include using namespace std; int main()

{

int x1,x2,r; char c;

while(1)

{ cout<<\请输入一个四则运算表达式(形如:3+5 3-5 3*5 3/5):\

cin>>x1>>c>>x2; switch(c)

{ case'+':r=x1+x2; break ; case'-':r=x1-x2; break ; case'*':r=x1*x2; break ; case'/':r=x1/x2; break ;

default:{cout<<\操作符输入有误,请重新输入:\ }

cout<

cout<<\是否继续?继续输入Y或y,退出输入N或n\ cin>>c;

if(c=='n'||c=='N') break; }

return 0; }

7. 编写程序求用户输入的正整数n的阶乘。

//参考一

#include using namespace std; int main() {

int i,n;

int s=1; //或是double s=1; cout<<\请输入一个正整数:\ cin>>n;

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

cout<

//参考二

#include using namespace std;

int main() {

int i,j;

int s=1; //或是double s=1; cout<<\请输入一个正整数:\ cin>>i; j=i;

while(i>=1) {

s=s*i; i--; }

cout<

8. 求?i!(即求1!+2!+…+10!)。

i?110//参考一

#include using namespace std; int main() {

int i,j;

int s=1,sum=0; for(i=1;i<=10;i++){ s=1;

for(j=1;j<=i;j++) s*=j; sum+=s; }

cout<<\…+10!=\ return 0; }

//参考二

#include using namespace std; int main() {

int i;

long sum=0,s=1; i=1;

while(i<=10)

{

s=s*i; sum=sum+s; i++; }

cout<<\…+10!=\ return 0; }

本文来源:https://www.bwwdw.com/article/dog6.html

Top