南京師範大学の再審査プログラムのトレーニング4

31.ボールは、100Mから落下各バウンスバックの元の高さの半分、および10は、メーターがリバウンド何メートルの総数を、経験尋ねました。

#include <stdio.h>

int main()
{
    double h=100,sum=100;   //sum初值置为首高度
    for(int i=1; i<=10; i++)
    {
        h*=0.5;   //下次高度为本次的一半
        if(i==1)   //sum初值已加过
            continue;
        sum=sum+2*h; //每次经历两次
    }
    printf("第10次共经历%.2lf米,反弹%.2lf米\n",sum,h);
    return 0;
}

結果:

6 = 1 + 2 + 3:32は、それのような和の要素(分割)の数と正確に同じです。すべてが数千以内に終了して下さい

#include <stdio.h>

int main()
{
    int i,j,sum,a[10],k;
    for(i=2; i<1000; i++)
    {
        a[10]= {0};
        k=0;
        sum=0;
        for(j=1; j<i; j++)
        {
            if(i%j==0)
            {
                sum+=j;
                a[k++]=j;
            }

        }
        if(sum==i)
        {
            printf("%d=",i);
            for(j=0; j<k-2; j++)
                printf("%d+",a[j]);
            printf("%d\n",a[k-2]);
        }
    }
    return 0;
}

結果:

33.画分2 / 1,3 / 2,5 / 3,8 / 5,13 / 8,21 / 13、20及びフロントを見つけるの配列....

#include <stdio.h>

int main()
{
    float n=1,m=2,t,s,sum=0;//m为分母,n为分子
    for(int i=1; i<=20; i++)
    {
        s=m/n;
        sum+=s;  //求和
        t=m;   //往后确定两部分的值
        m=m+n;
        n=t;
    }
    printf("sum=%f\n",sum);
    return 0;
}

結果:

34.サルは桃の問題を食べます。桃の数の彼の最初の日オフモンキーは、半分がすぐに食べられますが、また食べて、ものを食べて、その後、次の日の朝と半分の残りの部分を食べて、後で、あまりにも。10日目1だけ。私は、採取したどのように多くの桃最初の日を尋ねましたか?

#include <stdio.h>

int main()
{
    int i,sum=1;   //rest为第10天剩余个数
    for(i=9; i>0; i--) //i为第9~1天
        sum=(sum+1)*2;
    printf("sum=%d\n",sum);
    return 0;
}

結果:

35反復法X = SQRT()。正方形Xnを+ 1 = 1/2 *の反復式(Xnの+ A / Xnを)

#include <stdio.h>
#include <math.h>
int main()
{
    float x1=1,x2,a;
    scanf("%f",&a);
    x2=a;
    while(fabs(x1-x2)>=1e-5)
    {
        x1=x2;
        x2=(x1+a/x1)/2;
    }
    printf("%.2f,%.2f\n",x1,x2);

    return 0;
}

結果:

式(-10,10)以下の根の間の二分法を求めて36.:2 *x³-4 * X 2 + * X-6 = 0 3

#include <stdio.h>
#include <math.h>
int main()
{
    double a=-10,b=10,c,x,x1,x2,x3;
    for(int i=0;; i++)
    {
        c=(a+b)/2;
        x1=2*pow(a,3)-4*pow(a,2)+3*a-6;
        x2=2*pow(b,3)-4*pow(b,2)+3*b-6;
        x3=2*pow(c,3)-4*pow(c,2)+3*c-6;
        if(x3==0)
            x=c;
        else if(x1*x3<0)
            b=c;
        else if(x2*x3<0)
            a=c;
        if(fabs(a-b)<1e-8)
        {
            x=a;
            break;
        }
    }
    printf("Root=%lf\n",fabs(x));
    return 0;
}

結果:

37.出力

   *

  ***

 *****

*******

 *****

  ***

   *

#include <stdio.h>

int main()
{
    int i,j,k;
    for(i=0; i<=3; i++)
    {
        for(j=0; j<3-i; j++)
            printf(" ");
        for(k=0; k<2*i+1; k++)
            printf("*");
        printf("\n");
    }
    for(i=0; i<3; i++)
    {
        for(j=0; j<i+1; j++)
            printf(" ");
        for(k=0; k<5-2*i; k++)
            printf("*");
        printf("\n");
    }
    return 0;
}

結果:

38.競争。A、B、Cの3のチーム、チームBは、x、y、zの3個です。彼はxの比でないこと、cが、彼は、zの比率をxはいないと述べました。リストを見つけるためにレース3つのチームのプログラミング。

#include <stdio.h>

int main()
{
    char i,j,k;   //i,j,k分别对应为a,b,c的对手
    for(i='x'; i<='z'; i++)
        for(j='x'; j<='z'; j++)
            if(j!=i)   //a,b,c不能同为一个人的对手
                for(k='x'; k<='z'; k++)
                    if(k!=i&&k!=j)  //a,b,c不能同为一个人的对手
                    {
                        if(i!='x'&&k!='x'&&k!='z')   //a不与x比,c不与x,z比
                            printf("a--%c\nb--%c\nc--%c\n",i,j,k);
                    }
    return 0;
}

結果:

行と列の39の二次元アレイは、別の2次元アレイを堆積させるために、交換されます。

#include <stdio.h>

int main()
{
    int a[3][3]= {{1,2,3},{4,5,6},{7,8,9}},b[3][3];
    printf("原矩阵为:\n");
    for(int i=0; i<3; i++)
    {
        for(int j=0; j<3; j++)
        {
            printf("%d ",a[i][j]);
            b[j][i]=a[i][j];
        }
        printf("\n");
    }

    printf("行列互换之后:\n");
    for(int i=0; i<3; i++)
    {
        for(int j=0; j<3; j++)
            printf("%d ",b[i][j]);
        printf("\n");
    }
    return 0;
}

結果:

40. 3×3マトリックス整数と対角要素を求めます。

#include <stdio.h>

int main()
{
    int a[3][3]= {{1,2,3},{4,5,6},{7,8,9}},sum=0;
    for(int i=0; i<3; i++)
        sum+=a[i][i];
    for(int i=0; i<3; i++)
    {
        for(int j=0; j<3; j++)
        {
            printf("%d ",a[i][j]);
            if(j==2)
                printf("\n");
        }
    }
    printf("对角线元素之和为:%d\n",sum);
    return 0;
}

結果:

公開された462元の記事 ウォン称賛55 ビュー320 000 +

おすすめ

転載: blog.csdn.net/LY_624/article/details/104966124