구조체의 swap 버블소팅 (수정)
앵초
구조체 배열을 swap하는 법질문 내용 :파일에서 이름 학번 학점을 입력받은후 버블소팅으로 성적순으로 화면에 출력하는 프로그램 작성중입니다.
그런데 구조체를 스왑하려는 문제가 자꾸 생기네요 ㅠㅠ
#include stdio.h
#include stdlib.h
#include string.h
typedef struct student{
int num; //학번
char name[20]; //이름
float score; //학점
}stu;void swap(stu *a, stu *b);
int main()
{
file *fp;
stu inscore[256];
//stu *pinscore = &inscore;
int i = 0;
int j,k,l;
fp = fopen(score.txt,r); if(fp == null)
{
printf(error!\n);
return 1;
}
while(!feof(fp))
{
fscanf(fp,%d %s %f,&inscore[i].num, &inscore[i].name, &inscore[i].score);
i++;
} for(k=0; ki; k++) //bubble sort
{
for(l=k+1; li; l++)
{
if(inscore[k].score inscore[l].score)
{
swap(inscore+k, inscore+l);
}
}
}
printf(--------------------------------------\n);
printf(%10s %6s %6s \n,학번,이름,학점); for(j=0; ji; j++)
{
printf(%10d %6s %6f\n,inscore[j].num, inscore[i].name, inscore[i].score);
}
printf(--------------------------------------\n); fclose(fp); return 0;
}
void swap(stu *a, stu *b)
{
stu temp;
memcpy(&temp, a, sizeof(stu));
memcpy(a, b, sizeof(stu));
memcpy(b, &temp, sizeof(stu));}대략 이런 형태인데요... 메인함수에서 파일에서 입력받은 스코어들을 버블소팅하려고 합니다 스왑으로 저 구조체를 통째로 옮길수 있는 방법은 없나요???//답변 감사합니다 !! 근데 실행결과가 엉망 이네요 ㅠㅠ
//한번만 봐주세요 ㅠㅠ
-
황소자리
감사합니다 ㅠㅠ
갈 길이 머네요 정말 -
시원
이런걸로 한심하다고 생각하지 말아요!
디버깅 자주 하다보면 금방금방 보이실꺼에요 ㅋㅋ -
이름없음
헐.....
감사합니다 진짜 제 자신이 한심해 지네요 이런걸로 몇번을 틀리는지 바로 해결됬습니다 챙피하네요 정말 ㅠㅠ -
김슬픔
for(j=0; ji; j++)
{
printf(\%10d %6s %6f\\n\ -
연꽃
감사합니다!! 컴파일은 성공!!
인데 실행결과가 엉망진창 이네요 ㅠㅠ
죄송한데 한번만 더 도와주실수 있나요 전체 코드 붙였습니다.. -
아키
아니면 호출을 swap(inscore + k, inscore + l); 일케하고
정의는
void swap(구조체타입 *a, 구조체타입 *b)
{
구조체타입 temp;
memcpy(&temp, a, sizeof(구조체타입));
memcpy(a, b, sizeof(구조체타입));
memcpy(b, &temp, sizeof(구조체타입));
} -
도란도란
for(k=0; ki; k++)
{
for(l=k+1; li; l++)
{
if(inscore[k].score inscore[l].score)
{
struct 구조체타입 temp;
memcpy(&temp, inscore + k, sizeof(구조체타입));
memcp -
카라
swap 함수의 매개변수 타입을
stu로 해줘야 하지 않나요? -
빛길
잘이해가 안됩니다 ㅠㅠ 함수 정의 부분에 넣으니 inscore k i 가 모두 정의 되지않은 변수라고 뜨네요 ㅠㅠ 스왑 함수의 매개변수로 무엇을 놓고 해야하는지 잘 이해가 안됩니다 ㅠㅠ
-
초코홀릭
swap(inscore[k], inscore[l]); 지우고 넣으세요
struct 구조체타입 temp;
memcpy(&temp, inscore + k, sizeof(구조체타입));
memcpy(inscore + k, inscore + l, sizeof(구조체타입));
memcpy(inscore + l, &temp, sizeof(구조체타입));
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676182 | 숫자 순서대로 배열하는법 | 권뉴 | 2024-11-24 |
2676152 | 기본적인거 하나 질문드립니다. | 개미 | 2024-11-24 |
2676124 | 함수선언관련 질문이에요~...털썩..수정완료 (2) | 가지 | 2024-11-24 |
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |