C++循环结构.docx

上传人:b****6 文档编号:8497788 上传时间:2023-01-31 格式:DOCX 页数:32 大小:23.59KB
下载 相关 举报
C++循环结构.docx_第1页
第1页 / 共32页
C++循环结构.docx_第2页
第2页 / 共32页
C++循环结构.docx_第3页
第3页 / 共32页
C++循环结构.docx_第4页
第4页 / 共32页
C++循环结构.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

C++循环结构.docx

《C++循环结构.docx》由会员分享,可在线阅读,更多相关《C++循环结构.docx(32页珍藏版)》请在冰豆网上搜索。

C++循环结构.docx

C++循环结构

1.公鸡6元一只,母鸡5元一只,小鸡1元三只,刚好花100元买100只鸡,有哪些买法?

输入格式要求:

输出结果格式要求:

"公鸡数="

"母鸡数="

"小鸡数="

#include

usingnamespacestd;

intmain()

{

    intg,m,x;

    for(g=0;g<=20;g++)

    {

        for(m=0;m<=33;m++)

        {

            x=100-g-m;

            if(!

(x%3)&&x/3+m*5+g*6==100)

            {

                cout<<"公鸡数="<

                cout<<"母鸡数="<

                cout<<"小鸡数="<

            }

        }

    }

    return0;

}

2.求多项式1!

+2!

+3!

+……+15!

的值。

输出格式要求:

cout<<"s="<

#include

usingnamespacestd;

intmain()

{

    ints=0;

    for(inti=1;i<=15;i++)

    {

        intx=1;

        for(intj=1;j<=i;j++)

            x=x*j;

        s=s+x;

    }

    cout<<"s="<

    return0;

}

3.用“辗转相除方法”计算两个数x,y的最大公约数。

输入格式要求:

无,直接输入

输出格式要求:

无,直接输出结果

#include

usingnamespacestd;

intmain()

{

    intx,y,n;

    cin>>x>>y;

    n=x%y;

    while(n!

=0)

    {

        x=y;

        y=n;

        n=x%y;

    }

    cout<

    return0;

}

4用while循环编程,求自然数1至100之间各奇数平方和sum。

输出结果格式为:

sum=166650

#include

usingnamespacestd;

intmain()

{

    inti=1,n,sum=0;

    while(i<=100)

    {

        n=i*i;

        sum=sum+n;

        i=i+2;

    }

    cout<<"sum="<

         return0;

}

5.输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。

输入格式要求:

输出格式要求:

cout<

每10个一行。

#include

#include

usingnamespacestd;

intmain()

{

    intm,n,k,i=0;

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

    {

        k=0;

        n=m;

        do

        {

            k=k+n%10;

            n=n/10;

        }

        while(n>0);

        if(k%15==0)

        {

            cout<

            i++;

            if(i%10==0)cout<

        }

    }

    return0;

}

6.将1-100之间奇数顺序累加存入n中,直到其和等于或大于200为止。

输出结果格式:

n=225

#include

usingnamespacestd;

intmain()

{

 inta,n;

 n=0;

 for(a=1;a<=100;)

 {

  n+=a;

  if(n>=200)

   break;

   a+=2;

 }

 cout<<"n="<

}

7.有递推公式f(n)=0.5*f(n-1)+0.7*f(n-2),已知f(0)=1,f

(1)=1,求f(20)

输入格式要求:

输出结果格式要求:

"f(20)="

#include

usingnamespacestd;

intmain()

{

    doublef,f1,f2;

    f2=1;

    f1=1;

    for(intn=2;n<=20;n++)

    {

        f=0.5*f1+0.7*f2;

        f2=f1;

        f1=f;

    }

    cout<<"f(20)="<

    return0;

}

8.求1至200之间的所有质数,将质数和存入变量sum中并输出。

质数(素数)的说明:

“质数是只能被1和其本身整除的数”。

输入提示要求:

输出结果格式要求:

质数之间以一个空格隔开

输出所有质数后换行输出:

sum=4227

#include

#include

usingnamespacestd;

intmain()

{

    intN,m,sum=0;

    for(m=2;m<=200;m++)

    {

        inti,tmp=(int)sqrt(m);

        for(i=2;i<=tmp;i++)

            if(m%i==0)break;

        if(i>tmp)

        {

            cout<

            sum+=m;

        }

    }

    cout<

    cout<<"sum="<

    return0;

}

9.以下程序的功能是以每行5个数来输出300以内能被7或17整除的偶数,并求出其和。

输入格式:

输出格式:

每个数据以一个空格隔开,5个一行

和另起一行输出

cout<<"sum="<

#include

usingnamespacestd;

intmain()

{

    inti,n,sum;

    sum=0;

    n=0;

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

            if(i%7==0||i%17==0)

                if(i%2==0)

            {

                sum=sum+i;

                n++;

                cout<

                if(n%5==0)cout<

            }

            cout<

    cout<<"sum="<

    return0;

}

10从键盘上输入若干名学生的成绩,以一个负分结束输入,计算平均成绩并统计90分以上的学生人数。

输入信息格式要求:

cout<<"请输入学生成绩,以负数结束输入:

"<

输出信息格式要求:

输出平均成绩和90分以上的学生人数,中间用空格分隔,输出结束后换行结束程序

#include

usingnamespacestd;

intmain()

{

    intscore,n=0,t=0;

    doublesum=0,average;

    cout<<"请输入学生成绩,以负数结束输入:

"<

    cin>>score;

    while(score>=0)

    {

        if(score>=90)

            t=t+1;

        sum=sum+score;

        n=n+1;

        cin>>score;

    }

    if(n>0)

        average=sum/n;

    cout<

    return0;

}

11.从键盘输入一批非零整数,输出其中的偶数、奇数的平均值,用零作为终止标记。

输入格式要求:

输出提示信息格式要求:

"偶数平均值:

"

"奇数平均值:

"

#include

usingnamespacestd;

intmain()

{

    intx,i=0,j=0;

    floats1=0,s2=0,av1,av2;

    cin>>x;

    while(x!

=0)

    {

        if(x%2==0)

        {

            s1=s1+x;

            i++;

        }

        else

        {

            s2=s2+x;

            j++;

        }

        cin>>x;

    }

    if(i!

=0)av1=s1/i;

    elseav1=0;

    if(j!

=0)av2=s2/j;

    elseav2=0;

    cout<<"偶数平均值:

"<

    cout<<"奇数平均值:

"<

    return0;

}

12.程序设计:

打印如下图案

*****

*****

*****

*****

*****

输入信息格式提示:

输出信息格式提示:

#include

usingnamespacestd;

int main()

{

 

    int i,j;

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

    {

        for(j=1;j<=i;j++)cout<<"";

        for(j=1;j<=5;j++)

            cout<<"*";

        cout<

 

    }

    return0;

}

13.程序设计:

打印出1000以内的同时满足如下条件的数,个位数字与十位数字之和除以10所得的余数等于百位数字

输入提示信息格式:

输出提示信息格式:

#include

#include

#include

usingnamespacestd;

int main()

{

    inta,b,c,d,i,j,flag=1;

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

 

    {

        for(j=2,flag=1;j<=sqrt(i)&&flag;j++)

            if(i%j==0)flag=0;

 

        if(flag==1)

        {

            a=i/100;

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

            c=i-a*100-b*10;

            d=b+c-(c+b)/10*10;

            if(d==a)

                cout<

        }

    }

    return0;

}

14.打印水仙花数及个数n(水仙花数是三位数,每位数字的立方和等于这个数本身)。

输入格式要求:

输出结果:

153,370,371,407,n=4

#include

usingnamespacestd;

intmain()

{

    inta,b,c,i,n=0;

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

    {

        a=i/100;

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

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

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

        {  

            n++;

            cout<

        }

    }

    cout<<"n="<

    return0;

    }

15.程序设计:

计算T=1-1/2+2/3-3/4+……-29/30

输入提示信息格式说明:

输出提示信息格式说明:

输出结果:

0.323242

#include

usingnamespacestd;

intmain()

{  intf,k;

    floatt1,t=1;

    f=-1;

    for(k=2;k<=30;k++)

    {

 

        t1=(float)(k-1)/k;

        t+=t1*f;

        f=-f;

    }

    cout<

    return0;

}

16用1,2,3可组成多少各位无重复的3位数,分别输出,用一个空格分隔,每行输出3个数

输入格式要求:

#include

usingnamespacestd;

intmain()

{

    inti,j,k,n=0;

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

        for(   j=1;j<=3;j++       )

            for(    k=1;k<=3;k++      )

            {

                if(   i!

=j&&i!

=k&&k!

=j )

                {

                    cout<

                    n++     ;

                    if(n%3==0)

                        cout<

                }

            }

    cout<

    return0;

}

17.程序设计:

在[100,5000]之间打印出各位数字和为5的所有整数的个数.

输入信息格式提示:

输出信息格式提示:

#include

usingnamespacestd;

int main()

{

    inta,b,c,d,k,i;

    k=0;

    for(i=104;i<=500;i++)

    {

 

        a=i/100;

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

        c=i-a*100-b*10;

 

        if(a+b+c==5)k++;

    }

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

    {

        a=i/1000;

 

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

 

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

        d=i-a*1000-b*100-c*10;

 

        if(a+b+c+d==5) k++;

    }

    cout<

    return0;

}

18.以下程序的功能是用公式π/4=1-1/3+1/5-1/7+......求π的近似值。

要求直到最后一项的绝对值小于1e-6为止。

输出提示信息格式控制:

cout<<"pi="<

#include

#include

usingnamespacestd;

intmain()

{

    doublet,pi,a,b;

    pi=0;

    a=1;

    b=1;

    t=a/b;

    while(fabs(t)>=1e-6)

    {

        pi=pi+t;

        a=-a;

        b=b+2;

        t=a/b;

    }

    pi=pi*4;

    cout<<"pi="<

    return0;

}

19.从键盘输入一个正整数,判断是否能写成2个素数之和,并输出所有的素数组合

输入格式要求:

输出结果要求:

每组占一行,以逗号分隔

例如,输入5,则输出:

2,3

3,2

#include

usingnamespacestd;

intmain()

{

    intx,f1,f2;

    cin>>x;

    intn;

    for(n=1;n<=x-1;n++)

    {

        f1=1;

        inti;

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

            if(n%i==0)

                f1=0;

        f2=1;

        for(i=2;i<=x-n-1;i++)

            if((x-n)%i==0)

                f2=0;

        if(f1==1&&f2==1)

            cout<

    }

    return0;

}

20.有若干个数放入数组中,计算其中正数的平均值aver.

设:

floata[6]={39,-47,21,2,-8,15},aver;

输入格式要求:

输出结果为:

aver=19.25

#include

usingnamespacestd;

intmain()

{

    inti=0,n=0;

    floata[6]={39,-47,21,2,-8,15},aver,sum=0;

    for(i=0;i<=5;i++)

    {

        if(a[i]>0)

        {

            sum=sum+a[i];

            n++;

        }

    }

    aver=sum/n;

    cout<<"aver="<

    return0;

}

21.用迭代法解方程x+sin(x)-3=0

输入格式要求:

迭代次数:

200

每隔10次查看迭代误差,格式:

cout<<"迭代误差="<

输出结果格式:

x=2.17976

#include

#include

usingnamespacestd;

intmain()

{

    doublex=0.1;

    doublexx;

    for(intn=1;n<=200;n++)

    {

        xx=x;

        x=3-sin(xx);

        if(n%10==0)

            cout<<"迭代误差="<

    }

    cout<<"x="<

    return0;

}

22.判断一个数23437是否是素数(要求程序中设置一个参数flag,fl

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

当前位置:首页 > 工作范文 > 行政公文

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

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