好的,我先解释一下我的作业。对于这个任务,我必须使用动态内存分配,我没有问题。我遇到的问题是找出正确的方法来完成我的任务。对于我的作业,我需要创建一个程序,提示用户输入他们有多少学生,然后要求提供以下信息:学生ID、生日和电话号码。我需要使用循环来提示用户输入所有学生信息。我需要创建一个循环,它将扫描所有学生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));
}
最佳答案
可以定义结构:
//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);
}
关于c - 我需要为任务分配三个独立的数组吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19727857/