printf("Enter the value\n");
scanf("%d ",&data);
Mais scanf
est en cours d'exécution avant printf
. Quelle peut être la raison?printf scanf Exécution L'ordre est en cours d'échange
Ceci est mon programme tout
#include<stdio.h>
#include<stdlib.h>
struct Queue{
int front,rear;
int capacity;
int *array;
};
void enqueue(struct Queue *q){
int data;
if(q->front == (q->rear+1)%q->capacity){
printf("Queue is full\n");
return;
}else{
printf("Enter the value\n");
scanf("%d ",&data);
q->rear = (q->rear+1) % q->capacity;
q->array[q->rear] =data;
if(q->front == -1)
q->front = q->rear;
}
}
void dequeue(struct Queue *q){
if(q->front == -1){
printf("Queue is Empty\n");
return;
}else{
printf("value dequeued %d \n",q->array[q->front]);
if(q->front == q->rear)
q->front = q->rear = -1;
else
q->front = (q->front+1)% q->capacity;
}
}
void printQueue(struct Queue *q){
if(q->front == -1){
printf("Queue is Empty\n");
return;
}else{
int f = q->front, r =q->rear;
while((f% (q->capacity)) != r)
{
printf ("\t %d", q->array[f]);
f++;
}
printf("\t %d",q->array[q->rear]);
printf("\n");
}
}
main(){
struct Queue *q = malloc(sizeof(struct Queue));
if(!q){
printf("Memory Error\n");
exit;
}
q->capacity = 3;
q->front= q->rear = -1;
q->array = malloc(q->capacity * sizeof(int));
if(!q->array){
printf("Memory Error\n");
exit;
}
int option;
char ch ='a';
while(1) {
printf("Enter the choice 1.Enqueue or 2.Dequeue 3.print\n");
fflush(stdout);
scanf("%d",&option);
switch(option){
case 1:
enqueue(q);
break;
case 2:
dequeue(q);
break;
case 3:
printQueue(q);
break;
default:
printf("Wrong choice\n");
}
printf("Do you want to continue? press y to continue\n");
scanf("%s", &ch);
if(ch != 'y')break;
}
}
Quand j'ENQUEUE un élément, il attend l'entrée et après que printf est exécuté i. Voulez-vous continuer? Idéalement, quand je rentre dans l'élément pour mettre en file d'attente et appuyer sur la touche Entrée, il faut me demander si vous voulez continuer et attendre l'entrée, c'est-à-dire 'y'. Mais dès que j'entre dans l'élément pour enqueue il attend l'entrée 'y' et après avoir entré 'y', 'vous voulez continuer' est exécuté
Non, ce n'est pas [] (http://www.google.com) –
J'utilise. Le compilateur gcc par défaut d'ubuntu – pst
Pourquoi vous fait croire qu'il est en cours de réorganisation? –