2014-02-27 97 views
0

我給了一個我似乎無法理解的練習。我幾乎完成了我的任務,但我堅持這個功能。C編程,結構和多維數組

限制: 只能有10個唯一的學生ID。 有5個學科領域。 一個學生只能參加2個科目。

我struct.h是這樣的:

typedef struct student_info{ 
    int student_id; 
    int course_id[2]; 
    }student; 

main.c中

student info[10]; 

在func.c

說我提示輸入學號的用戶。

printf("Enter Student ID. "); 
scanf("%d", &info->student[count_stud]->student_id; 

用戶輸入123

然後提示爲一療程ID的用戶。

printf("Enter Course ID. "); 
scanf("%d", &info->student->course_id[count_cour]; 

用戶輸入101

我的問題奠定了與打印出特定student_id數據和學生這門課。同樣使用for循環,我找不到找到重複的方法。我可以找到最後由用戶輸入的一個id,但是當我從前兩個輸入中輸入一個id時,它會傳遞我的if else語句。

任何幫助表示讚賞。

+1

'的scanf( 「%d」,&資訊[count_stud] .student_id);','的scanf( 「%d」,&資訊[count_stud] .course_id [count_cour]);' – BLUEPIXY

+0

也許,如果你表現出這些「if else」語句,以及似乎給你帶來麻煩的代碼,有人可以幫助你。 –

+0

'&info-> student [count_stud]'是錯的。 – moeCake

回答

1
student info[10]; 

這裏,info10 studentsarray所以你必須用指數來閱讀。

for(int student_count = 0; student_count < 10; student_count ++) 
{  
    printf("Enter Course ID 1 for student %d. ",student_count+1); 
    scanf("%d", &info[student_count].course_id[0]); 

    printf("Enter Course ID 2 for student %d. ",student_count+1); 
    scanf("%d", &info[student_count].course_id[1]); 
}