2013-11-01 4 views
-2

확인을 인쇄하는 루프를 작성해야합니다. 이 과제에서는 동적 메모리 할당을 사용해야하는데 문제가 없습니다. 제가 문제를 겪고있는 것은 제 임무를 올바르게 수행하는 방법을 찾는 것입니다. 저의 임무는 다음과 같은 정보를 요구 한 학생들의 수를 입력하도록하는 프로그램을 작성해야합니다. 학생 ID, 생년월일, 전화 번호. 루프를 사용하여 사용자가 모든 학생 정보를 입력하도록 요청해야합니다. 모든 학생 ID를 검사하고 생년월일을 사용하여 가장 나이가 많은 학생을 찾는 루프를 만들어야합니다. 루프는 3 명 이상의 학생을 검색 할 수 있어야합니다. 여기 내가 가장 오래된 학생을 발견하고 먼저 내 할당을 설명 할 것이다 자신의 ID

나는 몇 가지 제안하고 너희들의 코드의 경우에도 비트를 오긴했는데, 내 코드입니다. 내 코드는 모든 학생을 검색하여 가장 오래된 것을 찾는 루프를 만드는 가장 좋은 방법입니다.

감사합니다.

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

struct studentDataType 
{ 
    int studentID; 
    int year; 
    int month; 
    int day; 
    long long phone; 
}; 

int main (void) 
{ 
    struct studentDataType *studentRecords=NULL; 
    unsigned int students; 
    unsigned int studentID; 
    unsigned int year; 
    unsigned int month; 
    unsigned int day; 
    unsigned long phone; 

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

    studentRecords = malloc(sizeof(struct studentDataType) * students); 
    int i=0; 
    for (i; i != students ; ++i) { 
     printf("Enter information for student as follows (ID, DOB year, DOB month, DOB day, Phone): %d\n", i+1); 
     struct studentDataType * s = &studentRecords[i]; 
     scanf("%u %u %u %u %u", &(s->studentID), &(s->year), &(s->month), &(s->day), &(s->phone)); 
    } 
} 
+3

내가 스택 오버플로에 대답없는 질문은 다음입니다 :-), 그리고 매 10 분이 같은 질문과 코드가 다른 제목과 다른 문제가 말해 함께 발생 내가 틀렸다면. 불쾌감은 없지만 기본을 분명히하고 기본적인 문제에 대해 직접 시도해 보라고 제안합니다. 이것이 학습 방법입니다. (그리고 마지막으로 'for'루프에서 int 선언문에 대한 답을 추가 할 때, 적어도 up-vote .... :-) ;-)) –

+1

같은 질문 ([ 여기] (http://stackoverflow.com/q/19728660/335858) 및 [여기] (http://stackoverflow.com/q/19730765/335858)). 원래 문제를 해결하지 못했다면 질문으로 돌아가 편집하십시오. 이전 문제를 해결 한 경우 해당 질문을 수락하거나 삭제하십시오. 이전 질문에 대한 응답에서 얻은 코드를 새로운 질문으로 게시하는 것은 좋지 않습니다. – dasblinkenlight

답변

1

로컬 날짜를 0으로 초기화 (가능한 한 가장 작은 날짜)하는 것으로 시작하십시오. 그런 다음 컬렉션의 모든 항목을 반복합니다. 지역보다 오래된 "날짜"가있는 구조를 발견하면 해당 항목에 색인을 저장하고 현지 날짜를 항목 날짜로 설정하십시오. 그런 다음 루프가 끝나면 저장된 인덱스는 "가장 오래된"항목입니다.

의사 코드 같은 뭔가 :

oldest_date = 0; 
oldest_index = -1; 

loop_over_all_students 
{ 
    if current_student.date > oldest_date 
    { 
     oldest_date = current_student.date 
     oldest_index = current_index 
    } 
} 

if (oldest_index >= 0) 
{ 
    /* The variable `oldest_index` is the index to the "oldest" student */ 
} 
+0

몇 가지 샘플 코드를 제공해 주시겠습니까? – user2172993

+1

@ user2172993 때문에 [이 질문 (http://stackoverflow.com/questions/19727857/do-i-need-to-create-three-separate-arrays-for-my-assignment),이 질문 (HTTP http://stackoverflow.com/questions/19728660/how-do-i-use-a-structure), [이 질문] - 나에게 필요한 정보를 입력 할 때), 현재의 질문으로는 충분하지 못했습니까? 이 질문에 게시 한 바로 그 코드는 누군가의 대답에서 이전 질문에 붙여 넣습니다. – WhozCraig

+0

@ user2172993 Addes 의사 코드 –

관련 문제