Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

構造体の配列と構造体内の配列を区別するCプログラム


Cプログラミング言語では、構造体の最も一般的な使用法は構造体の配列です。

構造体の配列を宣言するには、最初に構造体を定義してから、その型の配列変数を定義する必要があります。

たとえば、

struct book b[10];//10 elements in an array of structures of type ‘book’

以下は、構造体の配列のCプログラムです-

struct marks{
   int sub1;
   int sub2;
   int sub3;
   int total;
};
main(){
   int i;
   struct marks student[3] = {{20,17,11,10},
      {175,23,169,10},
      {27,56,27,01}};
   struct marks total;
   for(i = 0; i <= 2; i++){
      student[i].total = student[i].sub1 +
      student[i].sub2 +
      student[i].sub3;
      total.sub1 = total.sub1 + student[i].sub1;
      total.sub2 = total.sub2 + student[i].sub2;
      total.sub3 = total.sub3 + student[i].sub3;
      total.total = total.total + student[i].total;
   }
   printf(" STUDENT TOTAL\n\n");
   for(i = 0; i <= 2; i++)
   printf("Student[%d] %d\n", i+1,student[i].total);
   printf("\n SUBJECT TOTAL\n\n");
   printf("%s %d\n%s %d\n%s %d\n",
      "Subject 1 ", total.sub1,
      "Subject 2 ", total.sub2,
      "Subject 3 ", total.sub3);
   printf("\nGrand Total = %d\n", total.total);
}

出力

上記のプログラムを実行すると、次の出力が生成されます-

STUDENT TOTAL
Student[1] 48
Student[2] 367
Student[3] 110
SUBJECT TOTAL
Subject 1 4200462
Subject 2 96
Subject 3 223
Grand Total = 525

以下は、構造内の配列のCプログラムです-

main(){
   struct marks{
      int sub[3];
      int total;
   };
   struct marks student[3] =
      {145,50,11,10,175,50,19,10,20,30,25,10};
   struct marks total;
   int i,j;
   for(i = 0; i <= 2; i++){
      for(j = 0; j <= 2; j++){
         student[i].total += student[i].sub[j];
         total.sub[j] += student[i].sub[j];
      }
      total.total += student[i].total;
   }
   printf("STUDENT TOTAL\n\n");
   for(i = 0; i <= 2; i++)
   printf("Student[%d] %d\n", i+1, student[i].total);
   printf("\nSUBJECT TOTAL\n\n");
   for(j = 0; j <= 2; j++)
   printf("Subject-%d %d\n", j+1, total.sub[j]);
   printf("\nGrand Total = %d\n", total.total);
}

出力

上記のプログラムを実行すると、次の出力が生成されます-

STUDENT TOTAL
Student[1] 216
Student[2] 254
Student[3] 85
SUBJECT TOTAL
Subject-1 4200548
Subject-2 130
Subject-3 71
Grand Total = 555

  1. データ構造体での配列表現の配列

    このセクションでは、多次元配列の別の表現を示します。ここでは、配列の配列表現が表示されます。この形式では、複数の配列の開始アドレスを保持している配列があります。表現は次のようになります。 これは、サイズ[7x8]の2次元配列xです。各行は、単一の1次元配列として表されます。初期配列は、これらの単一配列のアドレスを保持しています。これらはアドレスの配列であるため、ポインタの配列であると言えます。各ポインタは別の配列のアドレスを保持しています。 この種の配列を作成すると、以下のような新しいキーワードを使用できます- int [][] x = new int[7][8]; 位置x[i、j

  2. Cの多次元配列

    ここに多次元配列が表示されます。配列は基本的に同種のデータのセットです。それらは連続したメモリ位置に配置されます。さまざまなケースで、配列が1次元ではないことがわかります。 2次元または多次元の形式で配列を作成する必要がある場合があります。 多次元配列は、2つの異なるアプローチで表すことができます。これらは行メジャーアプローチであり、もう1つは列メジャーアプローチです。 r行c列の2次元配列を考えてみましょう。配列内の要素の数はn=r*cです。 0≤i