• 0
b0_3li

شباب .. عندي مشكلة مع ال array ممكن تساعدوني؟؟

سؤال

شباب عندي سؤال حليته بس طلعت لي بعض المشاكل ..

السؤال يطلب مني تكوين array من 5 خانات.. وادخال ارقام موجبة بها .. بعدها يطلب مني ادخال رقم من الارقام الي في الـ array واذا كان هو الرقم الاول يطبع لي انه الرقم الاول ويطبع لي الرقم الذي بعده ، واذا كان الرقم الاخير يطبع لي الرقم الذي قبله و يطبع لي انه الرقم الاخير واذا كان الرقم ليس الاول وليس الاخير يطبع لي الرقم الي قبله والذي بعده.. واذا كان ليس موجود في الـ array يطبع لي انه غير موجود في الـ array وللخروج من الـ loop علي طباعة رقم -1 .. وهذا مثال لـ input & output

Enter a positive number: 10

Enter a positive number: 20

Enter a positive number: 15

Enter a positive number: 25

Enter a positive number: 40

Enter a number to search for (use negative to stop): 15

The number before 15 is 20

The number after 15 is 25

Enter a number to search for (use negative to stop): 70

70 is not found

Enter a number to search for (use negative to stop): 40

The number before 40 is 25

40 is the last number

Enter a number to search for (use negative to stop): 10

10 is the first number

The number after 10 is 20

Enter a number to search for (use negative to stop): -1

هذا هو الحل لكن مع اخطاء .. ممكن تصححون لي الاخطاء؟

#include <iostream.h>
int main()
{
int a[5];
int c;

for (int b=0; b<=4; b++)
{
 cout<<"enter a positive number: ";
 cin>>a[b];
}


 cout<<"enter a number to search for (use negative to stop): ";
 cin>>c;

 for (; c!=-1;)
 {

 switch (c)
 {
 case a[0] : cout<<c<<" is the first number"<<"The number after "<<a[0]<<" is "<<a[2];
   break;
 case a[1] : cout<<"The number before "<<c<<" is "<<a[0]<<endl<<"The number after "<<c<<" is "<<a[2]<<endl;
   break;
 case a[2] : cout<<"The number before "<<c<<" is "<<a[1]<<endl<<"The number after "<<c<<" is "<<a[3]<<endl;
   break;
 case a[3] : cout<<"The number before "<<c<<" is "<<a[2]<<endl<<"The number after "<<c<<" is "<<a[4]<<endl;
   break;
 case a[4] : cout<<"The number before "<<c<<" is "<<a[3]<<endl<<c<<" is the last number"<<endl;
   break;
 cout<<c<<" is not found";
 }

 cout<<"enter a number to search for (use negative to stop): ";
 cin>>c;
 }



return 0;
}

0

شارك هذا الرد


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

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

  • 0

هذا التصحيح..

nclude <iostream.h>

int main()

{

int a[5];

int c;

for (int b=0; b<=4; b++)

{

cout<<"enter a positive number: ";

cin>>a[b];

}

cout<<"enter a number to search for (use negative to stop): ";

cin>>c;

for (; c!=-1;)

{

switch ©

{

case 'a[0]' : cout<<c<<" is the first number"<<"The number after "<<a[0]<<" is "<<a[2];

break;

case 'a[1]' : cout<<"The number before "<<c<<" is "<<a[0]<<endl<<"The number after "<<c<<" is "<<a[2]<<endl;

break;

case 'a[2]' : cout<<"The number before "<<c<<" is "<<a[1]<<endl<<"The number after "<<c<<" is "<<a[3]<<endl;

break;

case 'a[3]' : cout<<"The number before "<<c<<" is "<<a[2]<<endl<<"The number after "<<c<<" is "<<a[4]<<endl;

break;

case 'a[4]' : cout<<"The number before "<<c<<" is "<<a[3]<<endl<<c<<" is the last number"<<endl;

break;

cout<<c<<" is not found";

}

cout<<"enter a number to search for (use negative to stop): ";

cin>>c;

}

return 0;

}

0

شارك هذا الرد


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

باختصار اضيف ' حول كل case في switch

0

شارك هذا الرد


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

للاسف حلك خطأ.. اذا حطينا ' ' حول كل case راح يعتبره البرنامج char وهو اصلا int انا اريد وضع قيمة كل جزء في الـ array .. اذا وضعنا على حسب قولك ' حول كل case سيصبح الشرط ليس القيمة الي داخل كل خانة في الـ array بل الكلمة a[0] مثلا .. فهمت كيف قصدي؟؟؟؟؟

تم تعديل بواسطه b0_3li
0

شارك هذا الرد


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

فهمت ماهي المشكلـة

أنت تريد عـمل مقارنـة في الأساس

تريد أن تكتب ما هـو شبيه بهذا الأمر مثلاً في حالة الـ case الأولى:

case (a[0] ==c ):

انت استخدمتها بهذه الطريقـة:

case a[0]:

لا أدري إن كانت طريقتـك صحيحـة

ولكن في حال لم تنجح طريقتـك فعليك بالبديل لعبارة switch وهـو التفرع else if وريح دماغـك ....

0

شارك هذا الرد


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

طبعاً المقارنـة الذي وضعتها أنا في المثال الأول خطأ وليست صحيحـة ولا يجـوز استخدامها في حالة الـ switch

0

شارك هذا الرد


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

بالنسبة لمشكلة المصفوفة حاول حلها بأستخدام اي loop مثل for or while للمصفوفه والسؤال عن التساوي بأستخدام if فليس من المنطقي السؤال عن كل عنصر في المصفوفة بأستخدام الcase

فأذا كان عدد العناصر اكثر من 5 فستحتاج إلي case بعدد العناصر بعكس استعمل ال loop سيختصر لك الكثير حاول حل تلك المشكلة بطريقة افضل دائما ابحث عن الحل او الكود الافضل واتمنى لك التوفيق

0

شارك هذا الرد


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

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

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