• 0
احمد النبوي

[تمت الإجابة ]مشكلة في المكدسات

سؤال

ما الخطأ بهذا الكود

#include <iostream>

#include <conio.h>

using namespace std;

const int max=50;

void push();

void pop();

void display();

int top=-1,item,stack[max];

int main()

{int x;

do{

cout<<"enter 1 to push"<<"\n";

cout<<"enter 2 to pop"<<"\n";

cout<<"enter 3 to display "<<"\n";

cout<<"enter 4 to exit"<<"\n";

cin>>x;

switch(x){

case 1:

push();

break;

case 2:

pop();

break;

case 3:

display();

break;

default:

cout<<"invalid"<<"\n";}

}

while(x!=4);

getch();

}

void push(){

if(top==max-1)

cout<<"stack is full"<<"\n";

else {cout<<"enter item"<<"\n";

top++;

stack[top]=item;

cout<<"item inserted"<<"\n";}

}

void pop( ){

if(top==-1)

cout<<"stack is empty"<<"\n";

else{

stack[top]=item;

top--;

cout<<"item deleted"<<"\n";

}

}

void display(){

int i;

if(top==-1)

cout<<"stack empty"<<"\n";

else{

for(i=top;i>=0;i--)

cout<<stack<<"\n";

}

}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

5 إجابة على هذا السؤال .

  • 0

أخي الكريم ... هذا ليس سؤالك الأول في المنتدى ويُفترض بك مراعاة القوانين والقواعد ...

 

قم بتعديل مشاركتك وأضف ما يلي :

 

أولاً :  شرحا واضحاً للمطلوب من الكود .

ثانياً : شرحاً واضحاً للمشكلة التي تواجهك .

ثالثاً : نسّق الكود قليلاً بحيث يكون هناك tab قبل كل عبارة بداخل حلقة ..

 

وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

max اسم قالب مستخدم، std::max، لما استخدمت using namespace std حصل خلط بين max القالب و max المتغير الذي عرفته، أمامك خيارين:

 

1. أن لاتستخدم using namespace وتستدعي الوظائف هكذا std::cout، std::cin .. وهذه الطريقة الأفضل أو تحدد الدوال التي تحتاجها:

#include <iostream>#include <conio.h>using std::cout;using std::cin;const int max=50;...

2. أن تغير اسم المتغير max لأي اسم آخر.

تم تعديل بواسطه Mr.B
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

3- كتابة

#define  max 50

بدلا من :

const int max=50;

:)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أنا أوافق الأستاذ Mr.B فيما قاله بخصوص استخذام using namespace std قمت بحذفها فاشتغلالبرنامج لكن عندما أختار مثلا 1 

ينفذ البنامج هكذا hWGXp.jpg

يمكن توضح ما عمل برنامجك حتى نفهم أكثر 

كما يبدو أن هناك تجاوزا  لبعض التعليمات دون تنفيذها 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

تكرار نفس المخالفة في أكثر من موضوع يعني أنك لا تريد الالتزام بقوانين القسم.

 

يُغلق.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .