<div>저번 방학때 인턴 실습을 했었는데, 이번에 면접 준비한다고 다시 프로그램을 짜는중입니다..</div> <div> </div> <div>그런데 벌써 다 까먹어버렸네요 ㅠㅠ</div> <div> </div> <div>일단 기본 개념은 이렇습니다.</div> <div> </div> <div>1. 배열 형태의 원형큐 생성</div> <div>2. 자료를 계속 넣는데(24시간의 자료를 1시간씩 넣음) 만약 큐가 꽉차면 가장 오래된 자료는 삭제하고 그부분에 가장 최근자료 넣음</div> <div>-> 이때 1시간의 자료들은 여러개기때문에 memcpy를 통해 복사.</div> <div>3. 가장 최근자료부터 출력.</div> <div> </div> <div>일단 지금은 테스트를 위해서 난수를 각 배열에 넣어 출력확인해보려고하는데요..</div> <div> </div> <div>이상하게 제대로 작동안되네요... 출력부분만 봐주시면 감사하겠습니다 (__)</div> <div>--------------------------------------------------------------------------</div> <div>#include<stdio.h><br>#include<time.h><br>#include<Windows.h><br>#include<stdlib.h></div> <div>#define DATA_SIZE 24<br>#define MAX_H 25</div> <div><br>typedef struct _element{<br> unsigned int array[DATA_SIZE];<br>} element;</div> <div><br>typedef struct {<br> int front_h;<br> int rear_h;<br> int count_h;<br> element Queue_H[MAX_H];<br> } Queue;</div> <div>void init(Queue *q);<br>void addqueue_h(Queue *q, element *data);<br>void print_h(Queue *q);<br>void copyarr(element *dest,element *source);</div> <div><br>int main()<br>{<br> int number;<br> int outnum;<br> int random;<br> element temp;<br> Queue qh;<br> init(&qh);<br> srand((unsigned)time(NULL));</div> <div> for(outnum=0;outnum<MAX_H;outnum++)<br> {<br> for(number=0;number<DATA_SIZE;number++)<br> {<br> random = rand(); // 난수생성<br> temp.array[number]=random%10; // 임시배열에 난수 넣기<br> }<br> addqueue_h(&qh,&temp); // temp를 큐에 넣기<br> print_h(&qh); // 큐 출력<br> printf("\n");<br> }<br>}</div> <div>void init(Queue *q) // 큐 초기화<br>{<br> memset(q->Queue_H,0,sizeof(element)* MAX_H);<br> q->front_h=1;<br> q->rear_h=0;<br> q->count_h=0;<br>}</div> <div>void addqueue_h(Queue *q, element *data) // 데이터 추가<br>{<br> if(q->count_h == MAX_H)<br> {<br> q->front_h=(q->front_h+1)%MAX_H;<br> copyarr(&q->Queue_H[q->rear_h],data);<br> q->rear_h=(q->rear_h+1)%MAX_H;<br> }</div> <div> else<br> {<br> copyarr(&q->Queue_H[q->rear_h],data);<br> q->rear_h++;<br> q->count_h++;<br> }<br>}</div> <div>void print_h(Queue *q) // 큐 출력 ->>>>>>>>>>> 이 부분을 어떻게 고쳐야 될까요?<br>{<br> int i;<br> for(i=q->front_h;i<q->rear_h;i++);<br> printf("%d ",q->Queue_H[i]);<br>}</div> <div><br>void copyarr(element *dest,element *source) // 데이터 넣기<br>{<br> memcpy(dest->array, source->array,sizeof(int)* DATA_SIZE);<br>}<br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.