| | |
Stuck & Queue procedures in C
![]() |
•
•
Join Date: Nov 2006
Posts: 11
Reputation:
Solved Threads: 0
hi im making an exercise about two arrays. one is a working like a stuck (LIFO-Last in First Out)array and the second one like a queue (FIFO-First IN First Out). The problem is that im confused what to write in the case 3 and 4.....
Any additional help about compiler syntax errors would be nc.
Thanks in advance....
#include <stdio.h>
#include <stdlib.h>
#define N 10
#define N2 12
int push(int stuck[N],int head,int item,int flag,int N);
int pop(int stuck[N],int head,int item,int flag);
int engueue(int Q[N2],int rear,int item,int flag,int front,int N2);
int dequeue(int Q[N2],int front,int rear,int item,int flag);
int N,stuck[N],N2,Q[N2];
int main()
{
int sel,flag,item,head=0,front,rear;
do
{
do
printf("1.Push\n");
printf("2.Pop\n");
printf("3.Degueue\n");
printf("4.Enqueue\n");
printf("5.EXIT\n");
scanf("%d",&sel);
while (sel>0) && (sel<6);
switch (sel)
{
case 1:{
printf("Dwse to item\n");
scanf("&d",&item);
push(stuck,head,item,flag);
if (flag==0)
printf("Stoiva pliris\n");
}
case 2:{
pop(stuck,head,item,flag);
if (flag==0)
printf("Stoiva adia\n");
else
writeln("%d",item);
}
case 3:{
printf("Dwse to item\n");
scanf("&d",&item);
engueue(Q,rear,item,flag,front,N2);
if (flag==0)
printf("Oura pliris\n");
}
case 4:{
dequeue(Q,front,rear,item,flag);
if (flag==0)
printf("Oura adia\n");
else
writeln("%d",item);
}
}
}
while (sel!=5);
system("pause");
return 0;
}
int push(int stuck,int head,int item,int flag,int N)
{
if (head<(N-1))
{
head+=1;
stuck[head]=item;
flag=1;
}
else
flag=0;
return flag,head;
}
int pop(int stuck,int head,int item,int flag);
{
if (head>0)
{
item=stuck[head];
head-=1;
flag=1;
}
else
flag=0;
return item,flag,head;
}
int engueue(int Q,int rear,int item,int flag,int front,int N);
{
if (front==0)
front=1;
if (rear<=(N2-1))
{
rear+=1;
Q[rear]=item;
flag=1;
}
else
flag=0;
return flag;
}
int dequeue(int Q,int front,int rear,int item,int flag);
{
if (front!=0)
{
item=Q[front];
front+=1;
flag=1;
if(front>rear)
{
rear=0;
front=0;
}
}
else
flag=0;
return flag,item;
}
Any additional help about compiler syntax errors would be nc.
Thanks in advance....
#include <stdio.h>
#include <stdlib.h>
#define N 10
#define N2 12
int push(int stuck[N],int head,int item,int flag,int N);
int pop(int stuck[N],int head,int item,int flag);
int engueue(int Q[N2],int rear,int item,int flag,int front,int N2);
int dequeue(int Q[N2],int front,int rear,int item,int flag);
int N,stuck[N],N2,Q[N2];
int main()
{
int sel,flag,item,head=0,front,rear;
do
{
do
printf("1.Push\n");
printf("2.Pop\n");
printf("3.Degueue\n");
printf("4.Enqueue\n");
printf("5.EXIT\n");
scanf("%d",&sel);
while (sel>0) && (sel<6);
switch (sel)
{
case 1:{
printf("Dwse to item\n");
scanf("&d",&item);
push(stuck,head,item,flag);
if (flag==0)
printf("Stoiva pliris\n");
}
case 2:{
pop(stuck,head,item,flag);
if (flag==0)
printf("Stoiva adia\n");
else
writeln("%d",item);
}
case 3:{
printf("Dwse to item\n");
scanf("&d",&item);
engueue(Q,rear,item,flag,front,N2);
if (flag==0)
printf("Oura pliris\n");
}
case 4:{
dequeue(Q,front,rear,item,flag);
if (flag==0)
printf("Oura adia\n");
else
writeln("%d",item);
}
}
}
while (sel!=5);
system("pause");
return 0;
}
int push(int stuck,int head,int item,int flag,int N)
{
if (head<(N-1))
{
head+=1;
stuck[head]=item;
flag=1;
}
else
flag=0;
return flag,head;
}
int pop(int stuck,int head,int item,int flag);
{
if (head>0)
{
item=stuck[head];
head-=1;
flag=1;
}
else
flag=0;
return item,flag,head;
}
int engueue(int Q,int rear,int item,int flag,int front,int N);
{
if (front==0)
front=1;
if (rear<=(N2-1))
{
rear+=1;
Q[rear]=item;
flag=1;
}
else
flag=0;
return flag;
}
int dequeue(int Q,int front,int rear,int item,int flag);
{
if (front!=0)
{
item=Q[front];
front+=1;
flag=1;
if(front>rear)
{
rear=0;
front=0;
}
}
else
flag=0;
return flag,item;
}
I, also, would be confused with that kind of indenting and spacing of
your code. To start read here about proper tagging of the code you
post.
your code. To start read here about proper tagging of the code you
post.
Ok, first, if you'd read the rules and guidelines, you'd have seen that you should post your code between [code] and [/code] tags. That preserves the indentation and adds line numbers to make it easer for us to read and refer to your code. Keep it in mind for next time 
You've got several syntax errors, as you mentioned. Hopefully I can remember them from top down.
- Your use of N and N2 in function declarations is not allowed, since they are literal values (not variables). Also, declaring them on line 11 is not allowed for the same reason.
- Declaring the stack and queue as globals and then passing them around is somewhat silly.
- On line 18 you have a 'do' which looks out of place. I'm assuming it goes with the while on line 25, but you forgot the braces. Also, your logic in the while is backwards. You'll repeat the loop any time the user enters a value between 1 and 5. Also, you need to put parentheses around the entire condition.
- On lines 30 and 44, you have
- On lines 40 and 54, you call a function writeln which isn't defined. You probably want printf and to put a "\n" at the end of your output string.
- On each of your function definitions, you have the first parameter as an int not an int[]. Also, as mentioned, you can't have N and N2 in the parameter lists.
- In push(), pop(), and dequeue(), you can only return 1 value. You need to use pointers if you want to change the value of a parameter.
- You need to initialize all of your variables before you read from them. As it is, most of them have random bits in them, and those values are not legal, especially when reading from arrays.
- at the end of each case block, you need to add a
You've got several syntax errors, as you mentioned. Hopefully I can remember them from top down.
- Your use of N and N2 in function declarations is not allowed, since they are literal values (not variables). Also, declaring them on line 11 is not allowed for the same reason.
- Declaring the stack and queue as globals and then passing them around is somewhat silly.
- On line 18 you have a 'do' which looks out of place. I'm assuming it goes with the while on line 25, but you forgot the braces. Also, your logic in the while is backwards. You'll repeat the loop any time the user enters a value between 1 and 5. Also, you need to put parentheses around the entire condition.
- On lines 30 and 44, you have
scanf("&d"... which should be scanf("%d".... - On lines 40 and 54, you call a function writeln which isn't defined. You probably want printf and to put a "\n" at the end of your output string.
- On each of your function definitions, you have the first parameter as an int not an int[]. Also, as mentioned, you can't have N and N2 in the parameter lists.
- In push(), pop(), and dequeue(), you can only return 1 value. You need to use pointers if you want to change the value of a parameter.
- You need to initialize all of your variables before you read from them. As it is, most of them have random bits in them, and those values are not legal, especially when reading from arrays.
- at the end of each case block, you need to add a
break; or else you'll execute the next block as well. ![]() |
Similar Threads
- PC Cleaning Procedures & Detection Tools (Viruses, Spyware and other Nasties)
- Printing a Queue to file (C++)
- Calling Oracle Stored Procedures with ASP (ASP)
- Homework Help!! Priority Queue ?? (Computer Science)
- Tutorials & Code Submissions - Questions? (DaniWeb Community Feedback)
Other Threads in the C Forum
- Previous Thread: Read This Before Posting
- Next Thread: Out_of_Reach
| Thread Tools | Search this Thread |
#include adobe api array arrays asterisks binarysearch calculate char cm copyanyfile copyimagefile copypdffile cprogramme creafecopyofanytypeoffileinc createcopyoffile createprocess() csyntax database directory dynamic feet fflush fgets file fork forloop frequency getlasterror givemetehcodez global graphics gtkgcurlcompiling hacking hardware highest homework i/o include incrementoperators input interest kernel kilometer km linked linkedlist linux linuxsegmentationfault list locate logical_drives loopinsideloop. match matrix meter microsoft motherboard mqqueue mysql number odf open openwebfoundation owf pattern pdf performance pointer posix probleminc process program programming pyramidusingturboccodes radix read recursion recv repetition research scanf scheduling segmentationfault send sequential shape socket socketprograming stack standard string systemcall turboc unix user voidmain() wab win32api windows.h






