مشاهده نسخه کامل
: آرایه 2 بعدی
mohammadkhajoo
26-05-2011, 11:50
سلام . ببخشین توی ارایه 2 بعدی وقتی من می خوام یک کلمه رو بگیرم و اندازش بیشتر از 20 کاراکتر نیست ! حالا من مثلا 7 کاراکتر وارد می کنم . بعد وقتی می خوام همون رو چاپ کنم چیکار کنم که اون 0 هارو چاپ نکنه ؟؟
چون خیلی از خونه ها خالی مونده !! ممنون
در واقع می خوام اسم رو با آرایه 2 بعدی بگیرم !
resident
26-05-2011, 12:47
سلام . ببخشین توی ارایه 2 بعدی وقتی من می خوام یک کلمه رو بگیرم و اندازش بیشتر از 20 کاراکتر نیست ! حالا من مثلا 7 کاراکتر وارد می کنم . بعد وقتی می خوام همون رو چاپ کنم چیکار کنم که اون 0 هارو چاپ نکنه ؟؟
چون خیلی از خونه ها خالی مونده !! ممنون
در واقع می خوام اسم رو با آرایه 2 بعدی بگیرم !
سلام،
شما میتونید از NULL (نال) استفاده کنید:31: یعنی:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
mohammadkhajoo
26-05-2011, 18:36
سلام،
شما میتونید از NULL (نال) استفاده کنید:31: یعنی:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ممنونم . حالا مثلا من می خوام یه کلمه بگیرم . حالا چطور با ارایه بگیرم ؟
این رو خودم نوشتم :
cout<<"Enter Your DARS : " ;
for(int i=0 ; i<10 ; i++)
{
for(int k=0 ; k<20 ;k++)
{
cin>>dars[i][k] ;
}
اون جایی که گفتم k<20 تا موقع کوچکتر از 20 میره و من اگر 7 حرف هم وارد کنم بازم تا 20 میخواد . یعنی وقتی enter میزنم نمیره واسه کلمه بعد !!
من میدونم که اون کلمه بیشتر از 20 حرف نیست اما نمیدونم تعدادش چنده !!
اینجا چیکار کنم ؟؟؟
امکان داره یه کد بنویسین که مثلا 10 کلمه بگیرد .ممنونم !!!!!!!!!!!!!!!!
resident
26-05-2011, 19:10
ممنونم . حالا مثلا من می خوام یه کلمه بگیرم . حالا چطور با ارایه بگیرم ؟
این رو خودم نوشتم :
cout<<"Enter Your DARS : " ;
for(int i=0 ; i<10 ; i++)
{
for(int k=0 ; k<20 ;k++)
{
cin>>dars[i][k] ;
}
اون جایی که گفتم k<20 تا موقع کوچکتر از 20 میره و من اگر 7 حرف هم وارد کنم بازم تا 20 میخواد . یعنی وقتی enter میزنم نمیره واسه کلمه بعد !!
من میدونم که اون کلمه بیشتر از 20 حرف نیست اما نمیدونم تعدادش چنده !!
اینجا چیکار کنم ؟؟؟
امکان داره یه کد بنویسین که مثلا 10 کلمه بگیرد .ممنونم !!!!!!!!!!!!!!!!
بله، اینطوری عمل کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
قسمت اول رو که بلدید، یه آرایه دو بعدی که 100سطر و 20 ستون (طول اسم) داره.
قسمت دوم با استفاده از for شما میگید name[i] رو cin کنه؛ یعنی توی خط فرمان وقتی شما یه کلمه بنویسید و enter بزنید، برنامه میره به سطر iم و حرف اول کلمه رو وارد میکنه، بعدش حرف دوم رو توی خونه دوم سطر iم وارد میکنه الی آخر... در واقع شما وقتی یه کلمه هفت حرفی مینویسید و enter میزنید خودش هفت حرف رو شروع میکنه از خونه اول تا جایی که کاراکترهای کلمه تموم بشه وارد میکنه.
قسمت سوم سطرهای i=0 تا i=99 (یعنی همون 100 سطر و کلماتی که وارد شده) رو چاپ میکنه.
البته الان اسم ها رو پشت سرهم چاپ میکنه، باید یه endl هم اضافه کنید تا هر سطر رو توی یک خط چاپ کنه.
mohammadkhajoo
26-05-2011, 19:20
دمت گرم خیلی آقایی !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
resident
26-05-2011, 20:56
دمت گرم خیلی آقایی !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
آقایی از خودته دوست عزیز که واضح سوال میپرسی:31:
شما که از 2006 عضوی:10: دیگه چرا پست اسپم تشکر میدی:31:؟
موفق باشی:11:
mohammadkhajoo
27-05-2011, 14:16
سلام . این کدی که نوشتم ببینین :
for(int k=0;k<100;k++)
{
cin>>name[k] ;
if(name[k]=="finish") break ;
}
بهش گفتم وقتی کاربر تعداد اسم مورد نظر خودش رو وارد کرد با نوشتن finish از گرفتن اسم جدید بیاد بیرون .
اما وقتی کد رو اجرا میکنم این کار رو انجام نمیده !! چیکار کنم ؟ ممنونم
mohammadkhajoo
27-05-2011, 14:44
آرایه 2 بعدی هست
resident
27-05-2011, 14:52
سلام . این کدی که نوشتم ببینین :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بهش گفتم وقتی کاربر تعداد اسم مورد نظر خودش رو وارد کرد با نوشتن finish از گرفتن اسم جدید بیاد بیرون .
اما وقتی کد رو اجرا میکنم این کار رو انجام نمیده !! چیکار کنم ؟ ممنونم
لطفا کدهاتون رو داخل [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] قرار بدید.
شما نمیتونید آرایه رو اینطوری قیاس کنید. باید از STRCMP که مخفف Strings Compare یا "مقایسه رشته ها" هستش استفاده کنید. اینی که شما نوشتید میاد خونه ی اول name[k]l رو با finish مقایسه کنه، که مسلما برابر نیست:31:!! یه حرف کجا! یه کلمه کجا!! مقادیرشون متفاوته:46:
با اضافه کردن کتابخانه رشته ها و استفاده از strcmp میتونید این کار رو انجام بدید.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
mohammadkhajoo
27-05-2011, 19:36
سلام .
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ببخشین من مثلا اسم رو mohammad jafari میزنم . وقتی cout می کنم mohammad رو تنها مینویسه . چیکار کنم ؟ ممنون
resident
27-05-2011, 20:17
سلام .
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ببخشین من مثلا اسم رو mohammad jafari میزنم . وقتی cout می کنم mohammad رو تنها مینویسه . چیکار کنم ؟ ممنون
شما زرنگی کن و فقط فامیل رو دریافت کن:31:
اگه نمیتونی، دو تا آرایه 2بعدی بنویس، اینطوری:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
MaSoUd555
27-05-2011, 20:20
سلام .
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدببخشین من مثلا اسم رو mohammad jafari میزنم . وقتی cout می کنم mohammad رو تنها مینویسه . چیکار کنم ؟ ممنون
cin مثل scanf تو C وقتی به اولین جای خالی میرسند فکر میکنند رشته تموم شده :31: از cin.getline استفاده کن
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
mohammadkhajoo
27-05-2011, 20:21
آقا بهش کلک زدم !! :21:
گفتم اینجوری وارد کن :mohammad.jafari
mohammadkhajoo
27-05-2011, 22:42
سلام
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
آقا اگه بخوام average رو cin کنم چطور اون کلمه رو با هاش مقایسه کنم ؟؟
ممنون
mohammadkhajoo
27-05-2011, 22:49
ممنون میشم بهم سریع جواب بدین
resident
28-05-2011, 05:18
ممنون میشم بهم سریع جواب بدین
متوجه نشدم، اما چون این مسائل روتین هستش فک میکنم منظورتون اینه که میخواهید وقتی داره نمارت رو میگیره، هروقت اون کلمه وارد شد از حلقه بیاد بیرون؛ آره؟
دو تا راه داری:
توی این بخش از "-1" استفاده میشه، به این صورت که اولا آرایه نمرات رو int بگیرید تا به راحتی بشه باهم + و - کرد. دوما اون خط if رو به این صورت بنویسید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
2. کدت رو بزاری اینجا تا کامل راهنماییت کنم
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.