C言語プログラミング実験(4)

Cプログラミング実験レポート
実験項目:実験5.3.1演習2、実験5.3.2演習2、実験5.3.4、実験5.3.5演習1&演習2&演習3、九九乗算テーブル
名:ロング嘉城実験場所:自宅実験時間:2020年4月9日

1.実験の目的と要件

1. while、do_while、forステートメントの方法に習熟しており、ループを実現します
。2. 3種類のループステートメントの違いと変換、それぞれの適応性、ループの入れ子の使用を
理解します。プログラムフローを変更する
4.プログラム設計でループを使用してさまざまなアルゴリズムを実装する方法を習得する

2.実験的な内容

1.実験的な演習:実験5.3.1演習2

1問題の簡単な説明:シーケンス1、-3!、5!、-7!、...、(-1)^ n-1(2n-1)を見つけるプログラムを記述します!最初のn項目の合計。nの値はキーボードで入力します。
2実験コード:

#include<stdio.h>
main()
{
    int n,i,j,sign=1;
    float fac,sum;
    printf("Please input value of n:");
    scanf("%d",&n);
    sum=0.0;
    for(i=1;i<=n;i=i+1)
    {
	    fac=1.0;
	    for(j=1;j<=2*i-1;j=j+1)
	    {
		    fac=fac*j; 
	    }
	    fac=fac*sign;//计算第n项 
	    sum=sum+fac;//求前n项和 
	    sign=-sign;
    }
    printf("sum=%.0f\n",sum);
}

3.フローチャート:

3問題分析:このコードはforループの入れ子を多く使用しています。理解する必要があるのは、各ループの役割とループ間の関係です。

2.実験的な演習:実験5.3.2演習2

1.問題の簡単な説明:すべての水仙の数字を見つけます(水仙の数字は3桁の自然数で、数字の数字の3乗和は数字自体と同じです)
2.実験コード:

#include<stdio.h>
main()
{
    int x,y,z;
    int k=100;
    while(k<=999)//while循环条件,水仙花数是一个三位数
    {
	    x=k/100;
	    y=(k/10)%10;
	    z=k%10;
	    if(x*x*x+y*y*y+z*z*z==k)//水仙花数应当满足的条件
	    printf("%d\n",k);
	    k++; 
    }
}

3.フローチャート:

4.問題分析:この質問はクラスの前に説明されました。コードの入力プロセスには多くの問題はありませんでした。

3.実験演習:実験5.3.4

1.問題の簡単な説明:4文字の数値を入力して、それらを10進整数に変換します
。2。実験コード:

3.フローチャート:

4.問題分析:コードを入力するときの不注意により、forステートメントの後に「;」が追加され、実行に失敗しました。

4.実験演習:実験5.3.5演習1

1.問題の簡単な説明:100頭の馬があり、100の荷物を運ぶ必要があります。1パック3マレーシア商品をサポートすることができ、パック2は、貨物馬でサポートすることができ、ポニー2液1は、所望のマレーシアを求めて、商品を運ぶことができ、マレーシア、組み合わせの数は、ポニーができる
2、実験コード:

#include<stdio.h>
main()
{
    int m,n,k;//m,n,k分别代表大马、中马和小马的匹数
    int sum=0; 
    printf("各种驮法如下:\n");
    for (m=1;m<=100;m++)
        for(n=1;n<=100-m;n++)
        {
    	    k=100-m-n;
    	    if((k%2==0)&&(3*m+2*n+0.5*k==100))
    	    {
    		    printf("大马%3d匹;中马%3d匹;小马%3d匹.\n",m,n,k);
    	        sum++;
		    }
	    }
    printf("共有%d种驮法.\n",sum);
 } 

3.フローチャート:

4.問題分析:コードを入力するときに、「== as =」として入力します

5.実験演習:実験5.3.5演習2

1.問題の簡単な説明:正の整数の算術シーケンスでは、シーケンスの最初の4項の合計は26に等しく、最初の4項の積は880に等しいことがわかっています。シーケンスの最初の6アイテムの合計。
2.実験コード:

3.フローチャート:

4.問題分析:コードの入力時にbとdの位置が間違っていたため、計算結果にエラーが発生しました

6.実験演習:実験5.3.5演習3

1.問題の簡単な説明:30人の学生が一緒にスナックを買いに行って合計50元を費やし、そのうち大学生1人が3元、中学生1人が2元、小学生1人が1元を使いました。割り当てられた人数にいくつの異なる組み合わせがありますか(特定の数の学生の組み合わせは計算されません)
2.実験コード:

#include<stdio.h>
main()
{
    int x,y,z,sum;
    sum=0;
    for(x=1;x<30;x++)
    {
	    for(y=1;y<30;y++)
	    {
		    z=30-x-y;
		    if((z!=0)&&(3*x+2*y+z==50))
		    {
			    printf("大学生%3d\t中学生%3d\t小学生%3d\n",x,y,z);
			    sum=sum+1;
		    }
		    else
		       continue;
	    }
    }
    printf("sum=%d\n",sum);
}

3.フローチャート:

4.問題分析:混乱を引き起こしやすいコードの入力プロセスで、ネストされたペアリングの各問題に注意してください。

実験3:プロジェクトのトレーニング:九九九九

1.フローチャート:

2.コード:

#include<stdio.h>
main()
{
    int i,j;
    for(i=1;i<=9;i++)
    {
	    for(j=1;j<=i;j++)
        {
    	    printf("%d*%d=%-3d\t",i,j,i*j);
	    }
	    printf("\n");
    }
}

第四に、実験の要約(個人的な利益と損失の分析)

この実験では、forステートメントの後に「;」が自然に追加されることがあり、実行結果にエラーが発生することがあります。また、不注意により一部の文字が誤って入力されることもあります。また、実験でわからないものも見つかりました。この問題は、クラスメートと話し合ったり、インターネットで情報を確認したりすることで解決しました。

おすすめ

転載: www.cnblogs.com/ljc-0819/p/12682878.html