|
궁금이 님이 쓰신 글 :
: 집에 C++이 안깔려있어여..
: 그래서 그냥 손으로 풀어봤는데..
: 어순이 말 안되는거 많져?
: 약간 수정좀 부탁드릴께여..
:
: 구조체를 사용하여 이름, 주소, 학년, 학번을 멤버로 정의하고 구조체 변수를 배열로 선언하여 20명의 자료를 저장할 수 있도록 선언한다.
: 이 문제를 푼거거든여...
: 죄송합니다..ㅜ.ㅜ
:
: #include < stdio.h >
: #include < string.h > // strcpy()
:
: struct Student
: {
: char StudentName[20]; //이름
: char juso[20]; //주소
: char hak[10]; //학년
: char b[10]; //학번
:
: };
:
: void main()
: {
: // Student 구조체형 변수 선언!
: Student MyStudent[20]
:
: MyStudent[0].name = "옥동자";
: MyStudent[0].juso = "여의도";
: Mystudent[0].hak = "2학년"
: Mystudent[0].b = "1번"
.
.
.
: for( i=1 ; i<20 ; i++)
: printf("배열: %c\n" i , MyStudent.StudentName[i]);
: printf("학생 주소 : %c\n", MyStudent.juso[i]);
: printf("학생 학년 : %c\n", MyStudent.hak[i]);
: printf("학생 학번 : %c\n", MyStudent.b[i]);
: }
수정: MyStudent[0].name = "옥동자"; -> strcpy(MyStudent[0].name, "옥동자");
이런식으로 적으셔야 #include < string.h > // strcpy() 문장을 쓴 의도와 맞겠지요.
MyStudent[0].name = "옥동자"; strcpy(MyStudent[0].name, "옥동자");
MyStudent[0].juso = "여의도"; strcpy(MyStudent[0].juso, "여의도");
Mystudent[0].hak = "2학년" strcpy(Mystudent[0].hak, "2학년");
Mystudent[0].b = "1번" strcpy(Mystudent[0].b, "1번");
그리고 출력문에서..
: for( i=1 ; i<20 ; i++)
: printf("배열: %c\n" i , MyStudent.StudentName[i]);
: printf("학생 주소 : %c\n", MyStudent.juso[i]);
: printf("학생 학년 : %c\n", MyStudent.hak[i]);
: printf("학생 학번 : %c\n", MyStudent.b[i]);
이것을 다음으로
for(int i=0; i<20; i++)
{
printf("배열: %d %s\n", i , MyStudent.StudentName[i]);
printf("학생 주소 : %s\n", MyStudent.juso[i]);
printf("학생 학년 : %s\n", MyStudent.hak[i]);
printf("학생 학번 : %s\n", MyStudent.b[i]);
}
for 구문에 전체를 { } 로 감싸줘야 합니다. 아니면 for 다음의 1문장만 반복하게 되죠
i를 출력하려고 했으니, %d (십진수형)가 있어야 겠지요, 또한 출력되는게 문자열이기
때문에 %s (스트링=문자배열) 로 출력기호가 나와야겠지요.
설명이 이해가 되시는지... 그럼 즐프하세요..
|