構造体の配列と構造体内の配列を区別する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
-
データ構造体での配列表現の配列
このセクションでは、多次元配列の別の表現を示します。ここでは、配列の配列表現が表示されます。この形式では、複数の配列の開始アドレスを保持している配列があります。表現は次のようになります。 これは、サイズ[7x8]の2次元配列xです。各行は、単一の1次元配列として表されます。初期配列は、これらの単一配列のアドレスを保持しています。これらはアドレスの配列であるため、ポインタの配列であると言えます。各ポインタは別の配列のアドレスを保持しています。 この種の配列を作成すると、以下のような新しいキーワードを使用できます- int [][] x = new int[7][8]; 位置x[i、j
-
Cの多次元配列
ここに多次元配列が表示されます。配列は基本的に同種のデータのセットです。それらは連続したメモリ位置に配置されます。さまざまなケースで、配列が1次元ではないことがわかります。 2次元または多次元の形式で配列を作成する必要がある場合があります。 多次元配列は、2つの異なるアプローチで表すことができます。これらは行メジャーアプローチであり、もう1つは列メジャーアプローチです。 r行c列の2次元配列を考えてみましょう。配列内の要素の数はn=r*cです。 0≤i