PDA

View Full Version : سوال: استفاده از پشته برای برعکس کردن اعداد



abasi.mohsen
شنبه 10 دی 1390, 10:48 صبح
میخوام برنامه ای بنویسم که یکسری عدد از ورودی بگیرد که پایان آنها عدد 1- باشد سپس با استفاده از پشته اعداد برعکس ترتیب ورودشان چاپ شوند:ناراحت:

b.saminjad
شنبه 10 دی 1390, 13:47 عصر
سلام

پشته رو پیاده سازی کن بعد مشکلتو بگو تا دوستان بتونن کمکت کنن

Dr_Crazy
یک شنبه 11 دی 1390, 00:15 صبح
سوالت یه مورد کوچیک داره ، پشته یه تعریف یا ساختمان داده است ، می شه به بینهایت روش تعریفش کرد
اما جواب سوالت
#include <iostream.h>

int main()
{
int a , c;
int arry[256];
for (int b=0 ; a!=-1||b<=256 ; b++)
{
cin>> a;
arry[b]=a;
c=b;
}
for (int d=c ; d>=0 ; d--)
cout<< arry[d] << " ";
return 0 ;
}

پاورقی :
1- در ارایه هایی که طول آنها مشخص نیست عموما از عدد 256 استفاده می کنن
2- شرط پایان عدد گریر رو بجای استفاده از دستور break و اضافه کردن چند خط و پیچیدگی ،در شرط حلقه گذاشتم

Dr_Crazy
یک شنبه 11 دی 1390, 20:21 عصر
به جای این که ارایه رو از ورودی بگیره یه کم منطقی ترش کردن به طور رندم پر بشه
تابع یک بعدی
#include <stdlib.h>
#include <iostream.h>

int main()
{
int b;
int arry [10];
for (int a=0 ; a<=9 ; a++)
arry[a]=rand()%20+1;
cin>> b;
for (int c=0 ;c<=9; C++‎){
if ( arry[c]==b)
cout<<"arry["<<c<<"] : "<< b<<endl;}

return 0;
}

اینم دو بعدی که for تو در تو استفاده میکنه
#include <stdlib.h>
#include <iostream.h>


int main()
{
int c;
int arry [10][10];
for (int a=0 ; a<=9 ; a++)
for(int b=0 ; b<=9 ; b++)
arry[a][b]=rand()%20+1;
cin>> c;
for (int d=0 ;d<=9; d++)
for(int e=0 ;e<=9;e++)
{
if ( arry[d][e]==c)
cout<<"arry["<<d<<"]["<< e<<"] : "<<c<<endl;}

return 0;
}