الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

مغلق
بدأه احمد النبوي في 12 نوفمبر 2013 · 5 رد · 1,036 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

#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";

}

}

#2

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

 

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

 

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

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

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

 

وشكرا

#3

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 في 12 نوفمبر 2013 في 21:55

1
#4

3- كتابة

#define  max 50

بدلا من :

const int max=50;

:)

#5

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

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

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

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

ابتسم للدنيا تبتسم لك و افعل الخير و انساه و لا تنسى أي أمر سيء قمت به حتى لا تكرره


لا تنسونا من صالح دعائكم أعانكم الله و ثبتكم على سواء السبيل


:)  :lol:  ^_^ 

#6

السلام عليكم

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

 

يُغلق.

هذا الموضوع مغلق.

مواضيع مشابهة