PDA

View Full Version : مشکل در زیاد کردن مقدار شمارنده



hister
چهارشنبه 22 آذر 1391, 00:12 صبح
سلام دوستان,
من ین برنامه رو برای شبیه سازی پرتاب دو تاس نوشت از برنامه ویژوال 2012 هم استفاده میکنم.
مشکلم اینه که توی دستور for محدودیت شمارنده رو که بیشتر از 200 میکنم برنامه که اجرا میشه یه چیزی تو مایه های فورز کلوز میده مشکل کجاست؟

#include <iostream>
#include <iomanip>
#include <ctime>
#include <cstdlib>
using namespace std;

int main()
{
const int shomarande = 200;
// const int shomarande = 36000;
int taas1, taas2, jam_taas;
int tedad [11] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
int pakhsh [11] = {0};

srand (time (0));

for (int i = 0; i < shomarande; i++)
{
taas1 = 1 + rand() % 6;
taas2 = 1 + rand() % 6;
jam_taas = taas1 + taas2;

for (int j = 0; j < shomarande; j++)
if (jam_taas == tedad [j])
pakhsh [j]++;
}

cout<< "02 = " << setw(2) << pakhsh [0] << " bar" << endl
<< "03 = " << setw(2) << pakhsh [1] << " bar" << endl
<< "04 = " << setw(2) << pakhsh [2] << " bar" << endl
<< "05 = " << setw(2) << pakhsh [3] << " bar" << endl
<< "06 = " << setw(2) << pakhsh [4] << " bar" << endl
<< "07 = " << setw(2) << pakhsh [5] << " bar" << endl
<< "08 = " << setw(2) << pakhsh [6] << " bar" << endl
<< "09 = " << setw(2) << pakhsh [7] << " bar" << endl
<< "10 = " << setw(2) << pakhsh [8] << " bar" << endl
<< "11 = " << setw(2) << pakhsh [9] << " bar" << endl
<< "12 = " << setw(2) << pakhsh [10] << " bar" << endl;

return 0;
}

aidinMC
چهارشنبه 22 آذر 1391, 00:22 صبح
سلام
شما یه همچین کدی نوشتی
for (int j = 0; j < shomarande; j++)
if (jam_taas == tedad [j])
pakhsh [j]++;


در حالی که "تعداد" یه آرایه ی 11 تای و شمارنده 200 هستش...

H_G_G_I
چهارشنبه 22 آذر 1391, 09:15 صبح
بله همون طور که گفتن ارایه شما 11 تایی هست و شما تا 3600 تا رفتی .
همون 200 رو هم که گذاشتی اشتباهه چون ارایه شما 11 تا عنصر داره شما از حد تجاوز کردی .
قسمتی که مقدارش رو دست زدی (از عنصر دهم به بعد )می تونه مربوط به یه متغییر دیگه یا ... باشه این طوری برنامه تون دچار مشکل میشه .