수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

구조체를 이용한 큐 구현

둘삥

2023.04.01

질문 제목 : 구조체를 이용한 큐 구현질문 요약 :포인터를 이용하지 않고 구조체 접근변수 이용 하는 법으로만 작성을 하고 싶어요질문 내용 : #includestdio.h
#includestdlib.h
#define MAXQUE 100struct que{
int front;
int rear;
int item[MAXQUE];
}; void push(struct que rear, int x);
int pop(struct que front);
void rear_full();
void front_empty();

void main()
{
struct que q;

int data,select; q.front=-1;
q.rear=-1; do{
printf( 1번 데이타를 삽입\n);
printf( 2번 데이타를 삭제\n);
printf( 3번 종료 \n);
scanf(%d,&select); if(select == 1)
{
printf(데이타 입력);
scanf(%d,&data);
push(q, data);
}
else if(select == 2)
{
printf(삭제된 데이타 = %d\n,pop(q));
}
}while(select != 3);
}
void push(struct que q, int x)
{
if(q.rear==MAXQUE-1)
rear_full();
else
{
q.item[q.rear++]=x;
}
}
int pop(struct que q)
{
int popdata; if(q.front==q.rear)
front_empty();
else
{
popdata=q.item[++q.front];
}
return(popdata);
}
void rear_full()
{
printf(꽉차있습니다\n);
exit(1);
}
void front_empty()
{
printf(비어있습니다\n);
exit(1);
}
이 소스 디버그를 돌리면....
push()함수를 호출시켰을때배열의 증가 값이 메모리에 저장이 안되고계속 -1로 초기화 된상태에서 실행이 되게되는데요
아직 제가 구조체의 정의에 대해서 잘 모르는거 같아요아니면 메모리 접근 방법에 대해서 잘 모르는것 일수도 있고요인자를 포인터로 접근하면 -1로 초기화가 안되고 계속 증가되는게 메모리에 저장이 되어 증감이 제대로 이루어지는데요....
정말 답답해요......
제가 지제가 지금 설명하는게.....이해가 잘 안가실수도..제가 말해놓고는 무슨말을 하는건지 모르겠네요....
아무튼 해석이 되셨으면...도와주시면 감사하겠습니다....

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 라별

    정말 감사합니다!!!!!! 죄송하지만 네이트온 친추 해도 될까요?? 도움좀 주시면 감사하겠습니다...

    제가 C는 그래도 어느정도 한다고 생각했는데....

    지금 읽자마자 이해가 쏙쏙 됬네요

    한심하네요 제가...ㅠ

  • 헛매질

    문제원인은 함수 호출시 call by reference와 call by value의 차이 입니다. 현재 call by value로 호출하고 있는데 호출시 구조체형 포인터로 넘겨줘야 됩니다. 굳이 포인터를 안쓰실려면 구조체를 전역으로 선언해 주시고 함수인자로 빼면 되구요.
    pop push 함수에서 인덱스 조정하는 부분도 잘못 된거 같아요 -1에 넣을순 없겠져?ㅎ
    추가로 더 말씀드리면 push, pop 은 stack에서 쓰이구요 put, get이 queue

번호 제 목 글쓴이 날짜
2697634 c언어로 감성사전 만들기! (1) 도란도란 2025-06-09
2697605 이 함수좀... agine 2025-06-09
2697574 배열 기본적인질문 (3) 민트향 2025-06-09
2697549 배열 초기화 (4) 나리 2025-06-08
2697465 수다님...^^ (2) 가론 2025-06-08
2697432 서버 만드는 함수에서 궁금한게있어요~ 파랑 2025-06-07
2697401 열혈강의 문제오류 (1) 꿈 2025-06-07
2697374 기초적인 C언어 프로그래밍 입니다. 얼 2025-06-07
2697341 좌우대칭 문제인데 Q가 입력되면 종료가 되야하는데 되지않습니다 무지개 2025-06-07
2697314 fprintf와 fscanf 로 파일 입출력 할떄 밝음이 2025-06-06
2697293 툴 소스 뽑아내는법 도움 2025-06-06
2697264 소소한거 두어가지 질문할께요~ (8) 별솔 2025-06-06
2697235 scanf로 인풋 받을 때?! 보담 2025-06-06
2697207 열혈강의 연습문제 질문이요~ (2) 맥적다 2025-06-05
2697182 strcmp, strtok - 어떤 기능을 하는지... 루다 2025-06-05
2697129 [질문] 아래 저축액을 계산하는 프로그램 ㅠ 추가 질문 (7) 찬늘 2025-06-05
2697072 쌩초보 질문! (1) 얀 2025-06-04
2697050 도움부탁드립니다.. 화이트 2025-06-04
2697023 gotoxy함수, 어떻게 사용하죠? (3) 적송 2025-06-04
2696994 c언어를 막 시작한 초보인데 질문이 있어용 ㅠㅠ (2) 귀1여운렩 2025-06-03
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com