Do I need to create three separate arrays for my assignment?

久未见 提交于 2019-12-04 06:33:16

问题


Ok firstly I'll explain my assignment. For this assignment I have to use dynamic memory allocation which I am having no problems with. What I am having a problem with is figuring out the correct way to work my assignment. For my assignment I need to create a program that prompt the user to enter how many students they have then ask for the following information; Student ID, Birthdate, and Phone number. I need to use a loop to prompt the user to enter all the students information. I need to create a loop that will scan through all the student IDs and find the oldest student using their birthdate (The loop must be able scan through more then 3 students).

Here is my code, I havent done much in it yet because I'm not sure really where to start. I've already setup the dynamic memory allocation, but I don't know how to work the rest of this. Please help me.

Thank you.

#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));
}

回答1:


You could define a structure:

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

Then create an array, where each of those elements is of type studentData:

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

Then loop through them with:

for (int i = 0 ; i < numberOfStudents ; ++i) {
    printf("%i %i %i\n", studentData[i].ID, studentData[i].phoneNumber);
}



回答2:


Use the following struct. You can make year, month and day as separate fields. It will be simpler for a quick start:

struct Student
{
    int studentID; 
    int year;
    int month;
    int day;
    long long phone; // phone is too large for 32 int
};


来源:https://stackoverflow.com/questions/19727857/do-i-need-to-create-three-separate-arrays-for-my-assignment

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!