C言語実験レポート(4)

Cプログラミング実験レポート

名前:ヤンジン実験場所:自宅実験時間:2020.04.10

 

 実験プロジェクト

1. forステートメントを使用してループを実装する

2. whileループステートメントを使用してループを実現する

3. do-whileステートメントを使用してループを実装する

4. whileステートメントとforステートメントを使用してループを実現する

5. forステートメントを使用してループをネストします

1.実験の目的と要件

1. while、do_while、forステートメントのメソッドを習熟し、ループを実現します。

2. 3種類のループステートメントの違いと変換、それぞれの適応性、およびループネストの使用について理解します。

3.プログラムフローを変更するために、ループステートメントでbreak、continueステートメントを使用する方法を習得します。

4.プログラミングのループでさまざまなアルゴリズムを習得します。

 2.実験的な内容

1. forステートメントを使用してループを実装する

(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( "nの値を入力してください:");
 scanf( "%d"、&n);
    sum = 0.0;
    for(i = 1; i <= n; i ++)
    {
     fac = 1.0;
        for(j = 1; j <= 2 * i-1; j ++)
        {
         fac = fac * j;
  }
        sum = sum + fac * sign;
        sign = -sign;
    }
    printf( "sun =%。0f \ n"、sum);
}

(3)問題分析:nはキーボードで入力した数、iはサイクルの総数を制御し、jは2n-1の結果を制御し、facとsumは階乗演算の出力を制御し、signは結果の符号を制御します。マイナス記号であることに気づかず、理解しにくいフローチャートを読んで考え始めました。

(4)フローチャート:

 

 2. whileループステートメントを使用してループを実現する

(1)問題の簡単な説明:すべての水仙を見つけます(水仙の数は3桁の自然数で、数字の数字の3乗和は数値自体と同じです。たとえば、153は水仙の数1 * 1 + 5 * 5です。 + 3 * 3 = 153)

(2)実験コード:

#include <stdio.h>
main()
{
 int x、y、z;
 int k = 100;
 while(100 <= k && k <= 999)
 {x = k / 100;
 y =(k / 10)%10;
 z = k%10;
 if(k == x * x * x + y * y * y + z * z * z)
    printf( "%d \ n"、k);
    k ++;
 }
}

(3)問題分析:3桁の条件を決定し、C言語の論理で判断された書き方に注意するこの質問は、いくつかの質問の中で最も簡単です。

(4)フローチャート:

 3. whileステートメントとforステートメントを使用してループを実装する

(1)問題の簡単な説明:4文字を入力し、4つの10進整数に変換して表示します。

(2)実験コード:

#include <stdio.h>

メイン()

{
    char c;
    int k、data;
    data = 0;
    for(k = 0; k <4; k ++)
    {
        while(1)
        {
            c = getchar();
            if(c> = '0' && c <= '9')
               break;
        }
     if(k == 0)data + =(c-'0 ')* 1000;
     if(k == 1)data + =(c-'0 ')* 100;
     if(k == 2)data + =(c-'0 ')* 10;
     if(k == 3)data + =(c-'0 ')* 1;
    }
    printf( "Data =%d"、data);

(3)問題分析:forループを使用して文字を入力し、ifステートメントで判断し、ループからジャンプした後、10進整数に変換して4桁にします。

(4)フローチャート:

 

4. forステートメントを使用してループをネストします

(1)問題の簡単な説明:100頭の馬がいます。100負荷を運ぶには、1馬は3負荷を運ぶことができ、1中馬は2負荷を運ぶことができ、2匹のポニーは1負荷を運ぶことができます。 。

(2)実験コード:

#include <stdio.h>
main()
{
 int m、n、k;
 int sum = 0;
 printf( "Various pack methods are as following:\ n");
 for(m = 1; m <= 100; m ++)
 for(n = 1; n <= 100-m; n ++)
 {
  k = 100-mn;
        if((k%2 == 0)&&(3 * m + 2 * n + 0.5 * k == 100))
        {
            printf( "Malaysia%3d horses; Middle Horse%3d horses; Pony%3d horses。\ n"、m、n、k);
            sum ++;
        }
 }
 printf( "A total of%d piggyback methods。\ n" 、合計); 
}

(3)問題分析:数学的思考を使用して、大、中、小のポニーの関係を見つけ、最初にマレーシアと中国のポニーの変数を定義し、次にポニーを除外し、if判決文で判断し、論理的な記述に注意を払います

B

(1)問題の簡単な説明:正の整数の算術シーケンスの最初の6項の合計を見つけるプログラムを記述します。シーケンスの最初の4項の合計は26で、最初の4項の積は880です。

(2)実験コード:

#include <stdio.h>

main()
{
 int a、b、c、d、i、sum = 0;
 for(a = 1; a <= 26; a ++)
 for(d = 1; d <= 26; d ++)
 {
  b = 4 * a + 6 * d;
  c = a *(a + d)*(a + 2 * d)*(a + 3 * d);
  if((b == 26)&&(c == 880))
        {
         printf ( "シーケンスの初期値はa =%d、差はd =%d \ n"、a、d);
         printf( "\ nシーケンスの最初の6アイテムの値:");
   for(i = 0; i <6; i ++)
   {
    printf( "%d"、a + i * d);
    sum = sum +(a + i * d);
   }
   printf( "\ n");
  }
       
 }
 printf( "\ n 6項目:%d \ n "、合計);
}

 (3)問題分析:数式では質問を理解するのが難しい。長い間理解していなかった。最初の6項目は、最初の項目aと差dを尋ねることによってのみ取得でき、最終的に6項目が得られる。そして。

C

(1)問題の簡単な説明:30人の学生が一緒にスナックを購入し、合計50元を費やします。このうち、大学生1人あたり3元、中学生1人あたり2元、小学生1人あたり1元。大学生、中学生、小学生に尋ねます人数に対して異なるソリューションがいくつあるか(特定のクラスの学生の数が0であるソリューションを削除します)。

(2)実験コード:

#include <stdio.h>

メイン()

{
 int x、y、z、sum;
 sum = 0;
 for(x = 1; x <30; x ++)
 {
  for(y = 1; y <30; y ++)
  {
   z = 30-xy;
   if((z!= 0)&&(3 * x + 2 * y + z == 50))
              {  
                 printf( "大学生%3d \ t中学生%3d \ t小学生%3d \ n"、x、y、z );
                 sum = sum + 1;
              }
  }

 }
 printf( "%d個の異なる組み合わせがあります。\ n"、合計);
}

(3)問題分析:分類の問題でもあり、馬の問題に少し似ていますが、理解しやすく、すばやく実行できます。

5.ナインナイン九九九九

実験コード:

 #include <stdio.h>

int main()
{
    int i、j;
    for(i = 1; i <= 9; i ++)
 {
        for(j = 1; j <= 9; j ++)
            printf( "%d *%d =%2d \ t"、i、j、i * j) ;
        printf( "\ n");
    }
    0を返します。
}

問題分析:リファレンスブックのさまざまな三角形。

おすすめ

転載: www.cnblogs.com/Yee123/p/12682842.html