0
試圖用C編寫一個程序,它創建一個隊列並允許用戶添加值。隊列使用數組設置。不知何故,我的代碼不工作,我想知道是否有人可以幫我排除故障。用C語言編寫隊列,我的代碼出錯的地方
#include <stdio.h>
#define CAP 10
//define a struct for our queue
typedef struct _que
{
int arr[CAP];
int front;
int size;
}
que;
void enqueue (que* ptr, int add);
int main(void)
{
int i;
que q1;
q1.front = 0;
q1.size = 0;
char yn = 'n';
//while loop for adding elements
do
{
printf("Enter the value you wish to add\n");
scanf("%d",&i);
enqueue(&q1, i);
printf("Would you like to add any more elements?\n");
scanf("%c",&yn);
}
while (yn == 'y' && q1.size <= CAP);
printf("The current element(s) in the queue are:");
//TODO: print out elements in the queue
for(int start = 0; start <= q1.size; start++)
{
printf("%d",q1.arr[start]);
}
printf("\n");
}
void enqueue(que* ptr, int add)
{
ptr->arr[((ptr->front)+(ptr->size))] = add;
ptr->size += 1;
}
程序正常執行到它打印的一部分「你想添加更多的元素」,那麼它只是跳出do-while循環中,並打印在隊列中的元素,這也因爲它吐出垃圾值,如217836276,可能表示存在內存問題
解決了它,謝謝! –