2013-05-16 2 views
0

저는 C 언어 수업, 특히 기능을 시작합니다. 내 임무는 배열의 구조를 숫자 값으로 정렬하는 것인데,이 경우 값은 'age'변수입니다.C에서 버블 정렬 기능

올바른 인수를 얻으려면 프로토 타입을 어떻게 사용해야하는지, 어디에서부터 나가야하는지 확실하지 않습니다. 일부 지침은 크게 감사하겠습니다. 미리 감사드립니다. 다음과 같이 참조 구조를 전달할 수

이를 달성하기 위해
struct person temp; 

for(i=0; i<STUDENTS; i++) 
{ 
    for(j=i; j<STUDENTS; j++) 
    { 
    if(stud[i].age < stud[j].age) 
    { 
     temp = stud[i]; 
     stud[i] = stud[j]; 
     stud[j] = temp; 
    } 
    } 
} 

이 필드 보존 기간을 기준으로 구조 데이터를 정렬하려면, 당신은 다음과 같은 코드를 사용할 수 있습니다

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

#define STUDENTS 5   //Maximum number of students to be saved. 
#define LENGTH 20    //Maximum length of names. 

struct person {      //Setting up template for 'person' 
    char first[LENGTH]; 
    char last[LENGTH]; 
    int age; 
}; 

void bubblesort(int, int);     //Prototyping function for sorting structures. 

int main(void) { 

struct person student[STUDENTS] = {  //Array of person structures. 

    {"Person", "One", 21}, 
{"Person", "Two", 18}, 
{"Person", "Three",20}, 
{"Person", "Four", 17}, 
{"Person", "Five", 16} 
}; 

int i;  //For loop counter. 
int n=5; //For loop variable. N is equal to the # of entries in the struct. 

printf("Here is an unsorted list of students: \n"); 
for(i=0; i<n; i++) 
    printf("%s %s is %d years old. \n", student[i].first, student[i].last, student[i].age); 


//Sort students by age. 
//Print sorted list. 

return 0; 
} 
+0

'무효 거품 정렬 (인 int, int); '매개 변수'int, int' ?? 뭐라 구요? – BLUEPIXY

+0

저는 21 세, 18 세, 20 세, 17 세, 16 세의 나이를 분류하고 있습니다. 제가 말했듯이, 저는 이러한 주장을하는 함수에 어떻게 말할 것인지 잘 모르겠습니다. – alldavidsluck

+1

예 : void bubblesort (struct person [], int start_index, int end_index);'qsort를 참조하십시오. – BLUEPIXY

답변

0

, 상기 기능

void bubble(struct person * stud); 

프로토 타입 void bubble(struct person *);

+0

고맙습니다. 'void bubble (struct person * stud);' 정말 필요한 것이지만 전체 루프를 보는 것이 많은 도움이됩니다. – alldavidsluck