dj_dj_dj
چهارشنبه 24 تیر 1394, 18:06 عصر
سلام دوستان من میخوام یه برنامه بنویسم که اون عدد هایی که تکرار شده توو آرایه رو نشونم بده برای عضو های آرایه ما 1و2و3و4و5و1و6و2 باشه خرجی برنامه چاپ عدد 2 و 1 باشه
که توو یکی از پست های همین قسمت کاربر sa1378 توو این پست (http://barnamenevis.org/showthread.php?473817-%D8%AF%D9%81%D8%B9%D8%A7%D8%AA-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1-%D9%87%D8%B1-%D8%B9%D9%86%D8%B5%D8%B1-%D8%AF%D8%B1%D9%88%D9%86-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87) یه برنامه نوشتن که با یکم تغییر اونی که من میخواستم شده البته اینجا تعداد دفعات تکرار عدد ه ولی واسه من فقط چاپ اون عدد هایی که تکرار شده . البته با یکم تغییر کار کرد ولی فقط واسه اجرای اول !
#include <iostream>
using namespace std;
#define N 1000
int n,a[N],b[N],c[N],p,ex;
int main() {
n=6;
a[]={1,2,3,4,3,2};
for(int i=0;i<n;i++)
{
ex=0;
for(int j=0;j<n;j++)
{
if(a[i]==b[j])
{
ex++;
c[j]++;
break;
}
}
if(ex==0)
{
b[p]=a[i];
c[p]++;
p++;
}
}
for(int i=0;b[i]!=0;i++)
if (c[i]>1)
cout<<b[i]<<"\n";
return 0;
}
این برنامه واسه اولین بار اجرا کار میکنه ولی برنامه من یه حلقه while که هر بار یه ارایه با اعداد و طول متفاوت رو با همین برنامه اجرا میکنه ولی واسه بار دوم به بعد دیگه یه اعدادی رو تکراری چاپ میکنه
و سوال دوم چرا متغیر ها و آرایه ها به صورت سراسری تعریف شدن وقتی متفیر p رو میارم توو تابع main تعریف میکنم stop working میده میندازه بیرون !!!!
انگار بعد از اینکه ارایه b خروجی رو مرتبه اول داد مرتبه دوم دیگه محتواش پر میشه
یا اگه قطعه کد دیگه ای مد نظرتون هست فقط یه راهنمایی کنین بقیشو در میارم
با تشکر
که توو یکی از پست های همین قسمت کاربر sa1378 توو این پست (http://barnamenevis.org/showthread.php?473817-%D8%AF%D9%81%D8%B9%D8%A7%D8%AA-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1-%D9%87%D8%B1-%D8%B9%D9%86%D8%B5%D8%B1-%D8%AF%D8%B1%D9%88%D9%86-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87) یه برنامه نوشتن که با یکم تغییر اونی که من میخواستم شده البته اینجا تعداد دفعات تکرار عدد ه ولی واسه من فقط چاپ اون عدد هایی که تکرار شده . البته با یکم تغییر کار کرد ولی فقط واسه اجرای اول !
#include <iostream>
using namespace std;
#define N 1000
int n,a[N],b[N],c[N],p,ex;
int main() {
n=6;
a[]={1,2,3,4,3,2};
for(int i=0;i<n;i++)
{
ex=0;
for(int j=0;j<n;j++)
{
if(a[i]==b[j])
{
ex++;
c[j]++;
break;
}
}
if(ex==0)
{
b[p]=a[i];
c[p]++;
p++;
}
}
for(int i=0;b[i]!=0;i++)
if (c[i]>1)
cout<<b[i]<<"\n";
return 0;
}
این برنامه واسه اولین بار اجرا کار میکنه ولی برنامه من یه حلقه while که هر بار یه ارایه با اعداد و طول متفاوت رو با همین برنامه اجرا میکنه ولی واسه بار دوم به بعد دیگه یه اعدادی رو تکراری چاپ میکنه
و سوال دوم چرا متغیر ها و آرایه ها به صورت سراسری تعریف شدن وقتی متفیر p رو میارم توو تابع main تعریف میکنم stop working میده میندازه بیرون !!!!
انگار بعد از اینکه ارایه b خروجی رو مرتبه اول داد مرتبه دوم دیگه محتواش پر میشه
یا اگه قطعه کد دیگه ای مد نظرتون هست فقط یه راهنمایی کنین بقیشو در میارم
با تشکر