logo

C 構造体の配列

なぜ構造体の配列を使用するのでしょうか?

5 人の生徒のデータを保存する必要があるケースを考えてみましょう。以下のような構造で保存することができます。

 #include struct student { char name[20]; int id; float marks; }; void main() { struct student s1,s2,s3; int dummy; printf('Enter the name, id, and marks of student 1 '); scanf('%s %d %f',s1.name,&s1.id,&s1.marks); scanf('%c',&dummy); printf('Enter the name, id, and marks of student 2 '); scanf('%s %d %f',s2.name,&s2.id,&s2.marks); scanf('%c',&dummy); printf('Enter the name, id, and marks of student 3 '); scanf('%s %d %f',s3.name,&s3.id,&s3.marks); scanf('%c',&dummy); printf('Printing the details....
'); printf('%s %d %f
',s1.name,s1.id,s1.marks); printf('%s %d %f
',s2.name,s2.id,s2.marks); printf('%s %d %f
',s3.name,s3.id,s3.marks); } 

出力

 Enter the name, id, and marks of student 1 James 90 90 Enter the name, id, and marks of student 2 Adoms 90 90 Enter the name, id, and marks of student 3 Nick 90 90 Printing the details.... James 90 90.000000 Adoms 90 90.000000 Nick 90 90.000000 

上記のプログラムでは、3 人の生徒のデータを構造体に保存しました。ただし、生徒数が 20 人になると、プログラムの複雑さはさらに増します。その場合、20 個の異なる構造体変数を宣言し、それらを 1 つずつ格納する必要があります。生徒を追加するたびに変数を宣言する必要があるため、これは常に困難です。すべての変数の名前を覚えるのも非常に難しい作業です。ただし、c では、this を使用して構造体の配列を宣言できるため、さまざまな構造体変数を宣言する必要がなくなります。代わりに、さまざまなエンティティの情報を保存するすべての構造を含むコレクションを作成できます。

C の構造体の配列

構造体の配列 C は、各変数に異なるエンティティに関する情報が含まれる複数の構造変数のコレクションとして定義できます。の配列 C の構造体 異なるデータ型の複数のエンティティに関する情報を保存するために使用されます。構造体の配列は、構造体のコレクションとも呼ばれます。

c 構造体の配列

5 人の学生の情報を保存し、それを出力する構造体の配列の例を見てみましょう。

 #include #include struct student{ int rollno; char name[10]; }; int main(){ int i; struct student st[5]; printf(&apos;Enter Records of 5 students&apos;); for(i=0;i<5;i++){ printf('
enter rollno:'); scanf('%d',&st[i].rollno); name:'); scanf('%s',&st[i].name); } printf('
student information list:'); for(i="0;i&lt;5;i++){" printf('
rollno:%d, name:%s',st[i].rollno,st[i].name); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Enter Records of 5 students Enter Rollno:1 Enter Name:Sonoo Enter Rollno:2 Enter Name:Ratan Enter Rollno:3 Enter Name:Vimal Enter Rollno:4 Enter Name:James Enter Rollno:5 Enter Name:Sarfraz Student Information List: Rollno:1, Name:Sonoo Rollno:2, Name:Ratan Rollno:3, Name:Vimal Rollno:4, Name:James Rollno:5, Name:Sarfraz </pre> <hr></5;i++){>