اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

یک آرایه ی تصادفی

+1 امتیاز
174 نمایش

سلام. میتونید به من کمک کنید؟
من یک تابع می خوام که یک آرایه ی 4 در 4 درست کنه که خونه ی آخر رو عدد صفر بذاره یا خالی کنه و خونه های دیگه رو اعداد رندوم 1 تا 15 قرار بده. می خوام بازی پازل اعداد رو بسازم. تو این یه تیکه کد گیر کردم. سعی کنید پاسختون در حد یک دانشجوی ترم یک آی تی باشه.(زبان تا حد امکان سی، اگر هم سی پلاس پلاس بود اشکال نداره)

پرسیده شده دوشنبه ۲۳ دی ۱۳۹۲ در C++ توسط امید  

1 پاسخ

+1 امتیاز
 
بهترین پاسخ
#include <iostream>
#include <time.h>
using namespace std;

int main()
{
  srand(time(NULL));
  unsigned int table[4][4] = {{0}};
  for(unsigned int i=0; i<4; i++)
    for(unsigned int j=0; j<4; j++)
      table[i][j] = rand() % 15 + 1;
  table[3][3] = 0;
  for(unsigned int i=0; i<4; i++)
    for(unsigned int j=0; j<4; j++)
      cout<<table[i][j]<<' ';
  return 0;
}

ویرایش در صورتی که اعداد تکراری نباشند:

#include <iostream>
#include <time.h>
#include <vector>
using namespace std;

int main()
{
  vector<unsigned int> numbers(15);
  for(unsigned int i=0; i<15; i++)
    numbers[i] = i+1;
  random_shuffle(numbers.begin(), numbers.end());
  unsigned int table[4][4] = {{0}};
  for(unsigned int i=0; i<15; i++)
    table[i/4][i%4] = numbers[i];
  table[3][3] = 0;
  for(unsigned int i=0; i<4; i++)
    for(unsigned int j=0; j<4; j++)
      cout<<table[i][j]<<' ';
  return 0;
}
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده دوشنبه ۲۳ دی ۱۳۹۲ توسط prodo  
ویرایش شده سه شنبه ۲۴ دی ۱۳۹۲ توسط prodo

اما این کد اعداد تکراری درست می کنه. من میخوام اعداد تکراری نباشه.

در صورت سوال حرفی از تکراری نبودن نبود. پاسخ رو ویرایش کردم و این حالت رو هم گذاشتم