PDA

View Full Version : مشکل در جستجو اطلاعات یک آرایه در آرایه دیگر



mehran901
شنبه 18 آذر 1391, 23:23 عصر
سلام دوستان ، بنده تازه با سی پلاس پلاس برنامه نویسی روشروع کردم و متاسفانه قطعه کد زیر که نظر مشکلی نداره یک ارور با تصویر پیوست شده ایجاد میکنه که نمی دونم علتش چیه .... اگه کسی منو راهنمایی کنه ممنون می شم
کار این قطعه کد : فراوانی اعضای آرایه 5 عضوی در آرایه 50 عضوی مشخص می شوند دوستان اگه برنامه ای دارن جهت راهنمایی خوشحال میشم قرار بدن

http://mehran4u.persiangig.com/Banner/error%20c%2B%2B.jpg



#include <iostream.h>
void main (void) {

int a[5] = {6,2,3,4,5}; // araye ba 5 ozve sabet : 6 2 3 4 5
int b[10] = { 1,1,2,3,4,2,1,7,8,9,10,5,5,2,2,3,2,4,5,6,1,2,3,3,3 ,4,4,4,4,4,4,4,4,6,6,6,5,10,12,12,13,14,15,16,18,1 9,2,6,6,5}; // araye ba 50 ozve sabet
int faravani[5] = {0,0,0,0,0} ; // yek araye baraye sabte tedade faravani azaye araye "a"
int i = 0 ;
int ii = 0 ;


for (i ; i< 5 ; i +=1 )
{

for (ii ; ii < 50 ; i+=1)
{
if ( a[i] == b[ii] )
{


faravani[i] = faravani[i] + 1 ;


}
}
}
int z = 0 ;
for ( z ;z <4; z ++ )
{
cout << "Faravani Adade \"" << a[z] << " " << faravani[z] ;

}

}

Ananas
یک شنبه 19 آذر 1391, 01:02 صبح
int b[10] = { 1,1,2,3,4,2,1,7,8,9,10,5,5,2,2,3,2,4,5,6,1,2,3,3,3 ,4,4,4,4,4,4,4,4,6,6,6,5,10,12,12,13,14,15,16,18,1 9,2,6,6,5}; // araye ba 50 ozve sabet

تو این قسمت بین 1 , 9 کاراکتر ' ' (فاصله) وجود داره. یا باید به هم بچسبن یا بینشون ویرگول بگذاری. (اگه خطا موقع کپی کردن تو سایت اتفاق نافتاده باشه) ضمنا تعداد عناصر آرایه 50 تا هست ولی موقع تعریف داخل کروشه کفتید 10 تا. از اون گذشته موقع اجرا هم ارور داشت. اینکه شما قسمت :
int ii = 0;
رو باید داخل حلقه اول قبل از حلقه ی دوم بنویسید که در هر بار قبل از شروع حلقه ی دوم ، از صفر شروع کنه. الان بار دوم از 50 شروع میکنه و از آرایه میزنه بیرون. هم چنین تو حلقه ی دوم قسمت i += 1 باید بجای i بنویسی ii. برای چاپ هم در آخر هر خط عبارت endl رو چاپ کن که بره خط بعد. در آخر هم برای اینکه صفحه ی کنسول بسته نشه می تونی از getchar استفاده کنی. نهایتا :
#include <iostream.h>

void main(void) {

int a[5] = {6, 2, 3, 4, 5}; // araye ba 5 ozve sabet : 6 2 3 4 5
int b[50] = {
1, 1, 2, 3, 4, 2, 1, 7, 8, 9, 10, 5, 5, 2, 2, 3, 2, 4, 5, 6, 1, 2, 3, 3,
3, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 5, 10, 12, 12, 13, 14, 15, 16, 18,
19, 2, 6, 6, 5}; // araye ba 50 ozve sabet
int faravani[5] = {0, 0, 0, 0, 0
}; // yek araye baraye sabte tedade faravani azaye araye "a"
int i = 0;
int ii;
for (i; i < 5; i += 1) {
ii = 0;
for (ii; ii < 50; ii += 1) {
if ((a[i]) == (b[ii])) {

faravani[ii] = faravani[ii] + 1;

}
}
}
int z = 0;
for (z; z < 4; z++) {
cout << "Faravani Adade \"" << a[z] << " " << faravani[z] << endl;

}
getchar();
}

mehran901
یک شنبه 19 آذر 1391, 17:21 عصر
بسیار ممنونم ، آره اون 50 تا که نوشتم 10 تا حواسم نبود اولش با 10 تایی نوشتم بعد 50 تاش کردم ولی موقع تست درست کردم .... اینجا کد اشتباه رو گذاشتم.... مرسی