PDA

View Full Version : سوال: چطوری عدد N رو در یه آرایه بریزم ؟



mamali-mohammad
چهارشنبه 30 آذر 1390, 23:18 عصر
سلام
عدد ورودی کاربر رو چطوری در آرایه بریزم ؟
اینو تست کردم جواب نداد :
scanf("%d",&n);
int x[n],y[n];

soorena
پنج شنبه 01 دی 1390, 01:45 صبح
int n[100];
for (int i=0;i<100;i++)
scanf("%d",&int[i]);

developing
پنج شنبه 01 دی 1390, 08:57 صبح
با سلام

اگه منظورت اینه که می خوای آرایه ی پویا بنویسی باید به شکل زیر تعریف کنی:

int n,*x,*y;
scanf("%d", &n);
x=(int*) malloc(sizeof(int)*n);
y=(int*) malloc(sizeof(int)*n);

در آخر هم باید حافظه ای که به اشاره گرت دادی به صورت زیر آزاد کنی:

free(x);
free(y);

برای کسب اطلاعات بیشتر به این (http://www.cplusplus.com/reference/clibrary/cstdlib/free/) و این (http://www.cplusplus.com/reference/clibrary/cstdlib/malloc/) مراجعه کنید.

mamali-mohammad
پنج شنبه 01 دی 1390, 12:49 عصر
نه میخوام تعداد عنصرها توسط کاربر دریافت بشه
مثلا الان آرایه زیر 100 عنصری هست :
int array[100];
کاربر ممکنه یه بار 20 بزنه ، یه بار 10 بزنه
به طور کل عنصر توسط کاربر تعیین بشه :
scanf("%d",&n);
int array[n];

کد بالا جواب نمیده

hajizadeh.m
پنج شنبه 01 دی 1390, 16:19 عصر
میتونی توی یه حلقه به تعداد باری که کاربر میخواد لیست پیوندی درست کنی

soorena
پنج شنبه 01 دی 1390, 18:11 عصر
اها فرض ميکنيم که نميدونيم کاربر چند تا عدد وارد ميکنه يک بار 20 تا يک بار 100 تا ...


int n;
printf("Enter the size of the array : ");
scanf("%d",&n);
int * nArray;
nArray=new int[n];
for (int i=0;i<n;i++)
scanf("%d",&nArray[i]);

من اينجا از تابع new استفاده کردم که تو cpp هستش اگه ميخوای ميتونی از malloc مثل پست شماره 3 هم به جای new استفاده کنی.
ميتونی به قول پست شماره 5 از ليست پيوندی هم استفاده کنی ولی اينجا استفاده از ارايه سرعت رو بيشتر ميکنه.