묻고 답하고
불필요한 소스는 지우고 필요한 부분만 간단하게 적어보았습니다.
현재 제 소스는 입력하면 그냥 입력된 순서대로 출력 되는 상황입니다.
하는 방법을 잘 몰라 질문 드립니다. 오류가 떠서 멘붕중입니다.ㅠㅠ
#include <stdio.h>
#include <string.h>
struct profile{
int id;
char *name[20];
};
int main(void)
{
int n,i;
struct profile a[10];
printf("인원수 : ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%s",&a[i].id,a[i].name);
}
printf("\n");
for(i=0;i<n;i++)
{
printf("%d %s\n",a[i].id,a[i].name);
}
return 0;
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
첫번째 문제는 일단 번호(아무거나)와 이름을 받고 출력을 하는데 이름의 가나다 순에 따라서 출력을 해야됩니다.
123 홍xx
456 김xx
789 박xx <-이렇게 입력 받으면
456 김xx
789 박xx
123 홍xx <-이렇게 출력 되야 되는데 temp를 어떻게 써야될지 잘모르겠습니다.ㅠㅠ
==================================================================================================
#include <stdio.h>
struct profile{
char *name[20];
int grade;
};
int main(void)
{
int n,i;
struct profile a[100];
printf("학생수 : ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("이름:");
scanf("%s",&a[i].name);
printf("점수:");
scanf("%d",&a[i].grade);
}
for(i=0;i<n;i++)
{
printf("%s %d\n",a[i].name,a[i].grade);
}
return 0;
}
두번째 문제는 이름 점수를 입력받으면 출력될때 석차를 같이 출력해야됩니다.
김xx 89
홍xx 78
박xx 93 <-이렇게 입력 받으면
김xx 89 2
홍xx 78 3
박xx 93 1 <-이렇게 출력되면 됩니다.
또한,
struct profile a[10];
이 선언에 의해 10명까지만 저장이 가능합니다. 입력불가능할 정도로 크게 잡으시던가, 아니면 명수 입력 받는 부분에서 10명 이하로 입력하게 처리 하셔야 오류가 나지 않습니다.
그리고 입력은
3
123 홍xx
456 김xx
789 박xx
과 같아야할 듯 하고요...
근데 temp 는 뭔가요? 안보이는데...
struct profile{
int id;
char *name[20];
};
일단 이거 잘못 선언 하셨습니다.
char name[20];
이게 맞습니다.
char *name[20]; 이건 포인터 변수 name 을 20개 선언한 것입니다.