2017-05-08 7 views
-1

마지막 학생에 대한 정보를 삭제하는 함수를 작성해야하며, 성공하면 1을, 그렇지 않으면 0을 리턴합니다.목록에서 마지막 학생에 대한 정보를 삭제하는 함수를 작성해야합니다.

나는 여기에 붙어 있는데 포인터 나 뭔가를 사용해야 만한다. 나는 정말로 여기에서 길을 잃는다. 여기

코드입니다 :

#include <iostream> 



/* run this program using the console pauser or add your own getch, system("pause") or input loop */ 




typedef struct _students 
{ 
    int index; 
    char name[20]; 


} students; 

int main() { 

    int n; 

    printf("How much students you want: "); 
    scanf("%d" ,&n); 

    int i=0; 

    struct _students list[n]; 

    for(i;i<n;i++) 
    { 
     printf("Type info about student nbr. %d \n" ,i+1); 
     printf("\n"); 

     printf("index: "); 
     scanf("%d", &list[i].index); 

     printf("name: "); 
     scanf("%s", &list[i].name); 



     printf("\n"); 

    } 

    printf("---------------"); 

    int j=0; 

     for(j;j<n;j++) 
    { 

     printf("Info about student: %d \n", j+1); 
     printf("\n"); 
     printf("Index: %d \n",list[j].index); 
     printf("Name: %s \n" ,list[j].name); 

     printf("\n"); 

    } 





    return 0; 
} 

감사

+1

처음에는'#include '이 C가 아니라 C++입니다. 아마도'#include '이 필요할 것입니다. – cdarke

+1

'malloc' 또는'realloc'과 같은 동적 메모리를 사용해야합니까? – cdarke

+0

typedef'students'가 정의되었습니다. 'struct _students list [n]; 대신'students list [n]'을 선언하십시오. –

답변

0

내가 코멘트를 사용합니다,하지만 난 내가 코멘트를 만들기 위해 50 평판을 필요 메시지가 표시됩니다.

printf는 stdio.h의 일부이므로 사용하는 경우 포함시켜야합니다.

iostream은 주석에 언급 된대로 C 라이브러리가 아닙니다.

내가 코드를 빨리 실행하면이 오류가 발생합니다.

test.c:39:15: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[20]’ [-Wformat=] 
     scanf("%s", &list[i].name); 

배열은 포인터처럼 취급된다는 점을 기억해야합니다. 그래서 s [] 일 때 scanf에서 s 앞에 &이 필요하지 않습니다. s는 배열의 첫 번째 요소에 대한 포인터로 처리됩니다.

scanf("%s", list[i].name); 

내가는 & 제거 iostream을 제거하고 STDIO.H 코드를 컴파일 추가되면.