Итак, вот код, который у меня есть на данный момент.Программа для печати из очереди печатает номер вместо
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
struct cake {
char name;
int waitTime;
int prepTime;
int bakeTime;
int turnTime;
};
struct cake redVelvet(){
struct cake c;
c.name = "R";
c.waitTime = 0;
c.prepTime = 60;
c.bakeTime = 30;
c.turnTime = 0;
return c;
};
struct Node {
struct cake cake;
struct Node* next;
};
// Two glboal variables to store address of front and rear nodes.
struct Node* front = NULL;
struct Node* rear = NULL;
// To Enqueue an integer
void Enqueue(struct cake x) {
struct Node* temp =
(struct Node*)malloc(sizeof(struct Node));
temp->cake = x;
temp->next = NULL;
if (front == NULL && rear == NULL){
front = rear = temp;
return;
}
rear->next = temp;
rear = temp;
}
// To Dequeue an integer.
void Dequeue() {
struct Node* temp = front;
if (front == NULL) {
printf("Queue is Empty\n");
return;
}
if (front == rear) {
front = rear = NULL;
}
else {
front = front->next;
}
free(temp);
}
struct cake Front() {
if (front == NULL) {
printf("Queue is empty\n");
return;
}
return front->cake;
}
void Print() {
struct Node* temp = front;
while (temp != NULL) {
printf("%d ", temp->cake.name);
temp = temp->next;
}
printf("\n");
}
int main(void){
Enqueue(redVelvet());
Enqueue(redVelvet());
Print();
getchar();
}
Так на самом деле я собираюсь иметь много разных пирожных, и если подразумеваются определенные условия, они будут введены в очередь LinkedList. Однако в качестве образца я создал один тип торта (красный бархат) и добавил его в очередь через мою функцию очереди, а затем попытался распечатать его. Однако мой вывод «88 88»
Я хочу, чтобы он печатал вместо названия торта.
Вы используете '% d' спецификатор формата для целых чисел, так что уверен, он печатает целое число, и вам повезло, что ваша программа не сбой. '% s' - спецификатор для строк. –
Ваше имя торта - это символ, который является небольшим числом, и вы печатаете их как цифры, используя «% d». Измените его на char * и напечатайте их, используя «% s». – Tim3880
в C, не возвращайте возвращаемое значение из malloc() и семейства функций. всегда проверяйте (! = NULL) возвращаемое значение из malloc() и семейство функций, чтобы гарантировать успешную операцию – user3629249