0

では、まず私の任務について説明します。この割り当てでは、問題のない動的メモリ割り当てを使用する必要があります。私が問題を抱えているのは、自分の割り当てを行う正しい方法を見つけ出すことです. 私の課題では、ユーザーに何人の学生がいるかを入力するように促し、次の情報を求めるプログラムを作成する必要があります。学生証、生年月日、電話番号。ループを使用して、ユーザーにすべての学生情報を入力するように求める必要があります。すべての学生 ID をスキャンし、生年月日を使用して最年長の学生を見つけるループを作成する必要があります (ループは 3 人以上の学生をスキャンできる必要があります)。

これが私のコードです。どこから始めればよいかわからないため、まだ多くのことを行っていません。すでに動的メモリ割り当てをセットアップしましたが、残りの作業方法がわかりません。私を助けてください。

ありがとうございました。

#include <stdio.h>
#include <stdlib.h>

int main (void)
{
int * studentData= NULL;

int students;
printf("How many students are you entering records for:\n");
scanf("%d", &students);

studentData=(int*)malloc((sizeof(int)*students));
}
4

2 に答える 2

3

構造を定義できます:

//Define a type, such as int, char, double...
typedef struct studentDataType {
    int ID;
    int birthDateDay;
    int birthDateMonth;
    int birthDateYear;
    int phoneNumber;
};

次に、これらの各要素が StudentData 型の配列を作成します。

//Create an array, where each element is of type studentData
studentDataType *studentData = (studentDataType *)malloc(numberOfStudents * sizeof(studentData));

次に、それらをループします。

for (int i = 0 ; i < numberOfStudents ; ++i) {
    printf("%i %i %i\n", studentData[i].ID, studentData[i].phoneNumber);
}
于 2013-11-01T13:42:01.203 に答える
0

次の構造体を使用します。年、月、日を別々のフィールドとして作成できます。クイックスタートの方が簡単です:

struct Student
{
    int studentID; 
    int year;
    int month;
    int day;
    long long phone; // phone is too large for 32 int
};
于 2013-11-01T13:45:42.377 に答える