PDA

View Full Version : نمایش اندیس برنامه



vB.N3T
سه شنبه 09 آذر 1389, 20:27 عصر
سلام :بوس:

دوستان یه ماتریس داریم
int m[10][12];

یه فانکشن داریم



{ int sum=0,i,j;
for (i=0;i<10;i++)
for (j=0;j<12;j++)
if (m[i][j]>sum)
sum=m[i][j];
cout<<sum;
}
که میاد بزرگترین عدد رو میریزه تو sum
حالا اگه بخواهی اندیس بزرگترین رو چاپ کنیم دستورش چی میشه
یعنی اگه
m[7][1]
از همه بزرگتر بود بگه شماره 7 بزرگترینه

sh4mid
سه شنبه 09 آذر 1389, 20:46 عصر
باید دوتا متغیر دیگه هم تعریف کنی(راستی به نظرت اسمی مثل sum برای متغیری که قراره بزرگترین مقدار رو تو خودش نگهداره کمی عجیب نیست :متفکر::متفکر::متفکر:)




int m[10][12];

int maxitm=m[0][0];
int maxrow=0;
int maxcol=0;

for (i=0;i<10;i++)
for (j=0;j<12;j++)
if (m[i][j]>maxitm)
{
maxitm=m[i][j];
maxrow=i;
maxcol=j;
}

vB.N3T
سه شنبه 09 آذر 1389, 21:26 عصر
این الان چیزی رو cout نمیکنه

sh4mid
چهارشنبه 10 آذر 1389, 00:24 صبح
این الان چیزی رو cout نمیکنه




بعد از حلقه های for بنویس



cout<<"Max Item:"<<maxitm<<" at ["<<maxrow<<"]["<<maxcol<<"]"<<endl;

vB.N3T
چهارشنبه 10 آذر 1389, 01:11 صبح
این به end 1 گیر میده
راه بهتری نیست؟؟؟

sh4mid
چهارشنبه 10 آذر 1389, 01:25 صبح
endl مخفف END LINE هست اون حرف آخر l هست (L) نه 1

حالا دقیقا که نباید کد من رو بنویسید کلا اصل این هست که شما باید مقادیر maxitm maxrow و maxcol رو یه جوری چاپ کنید

پ.ن:این استایل جدید واقعا چشم رو اذیت می کنه

vB.N3T
چهارشنبه 10 آذر 1389, 16:32 عصر
شاید من سوال رو یه کمی سخت کردم دوباره یه کمی ساده تر طرح میکنم

ببینید یه ماتریس داریم ده تا سطر داره 12 تا ستون
حالا تو این 10 تا سطر ما قیمت های مختلف وارد میکنیم
مثلا در سطر اول بیشترین قیمت 1200 تومن است
و تو سطر دهم بیشترین قیمت 9999
حالا برنامه میاد تو این 12 ماه با حلقه فور میگرده و بیشترین قیمت رو پیدا میکنه
حالا باید بگه
سطر ده بیشترین فروش رو داشته
خود قیمت رو نگه
بگه سطر 10

vB.N3T
چهارشنبه 10 آذر 1389, 18:00 عصر
این کد من یه نگاه بندازین
اگه ممکنه فانکشن رو اضافه کنید
به اسم power7

sh4mid
چهارشنبه 10 آذر 1389, 20:02 عصر
ببین این به دردت می خوره



void power7()
{
int maxitm=m[0][0];
int maxrow=0;
int maxcol=0;

for (int i=0;i<10;i++)
for (int j=0;j<12;j++)
if (m[i][j]>maxitm)
{
maxitm=m[i][j];
maxrow=i;
maxcol=j;
}


cout<<"Max is in Satr"<<maxrow<<endl;


}

البته برنامت کلا مشکل داره

vB.N3T
پنج شنبه 11 آذر 1389, 13:33 عصر
خیلی اذیت کرد برنامه...میشه بگید کجا مشکل دره رفع کنم

sh4mid
پنج شنبه 11 آذر 1389, 14:15 عصر
خوب اول از همه نامگذاری درست و حسابی برای متغیرهات نداری ، آرایه b چه کار می کنه؟
این مهمترین اصل تو برنامه نویسی هست ، جوری کد بزن که بقول دوستی همیشه طوری کد بنویسید که انگار شخصی که می خواهد کدهای شما را کامل کند یک مریض روانی خطرناک است که می داند شما کجا زندگی می کنید! (http://softing.wordpress.com/2010/09/12/6/)
البته از نام کاربری که برای خودتان انتخاب کرده اید می شود حدس زد میانه ای با خانواده C ندارید :لبخند:
توابع power1 ، power2 واقعا چه کاربردی دارند؟:متفکر: :متفکر:
در نظر داشته باشید آرایه ها در C از صفر شروع میشوند نه یک ، در C ما Option base نداریم
یعنی آخرین مکانی که برای مثلا آرایه m میتوان متصور شد m[9][11] هست ، در حالیکه در توابع power8,power4 و power9 در اون حلقه ها شما حد مجاز رو رد می کنید و ...
اون ساختار switch که دیگه شاهکاره :لبخند: البته تا حدی کار میکنه ولی زیاد جالب نیست ، case ها هم break ندارند.
اگر می خواهید داده های زیادی را بخوانید به نظر من بهتر است شماره کالا ، ماه و قیمت را در فایل متنی بریزید و داده ها از آنجا بخوانید ، نه اینکه کاربر مجبور باشد آن روش زجرآور برای ورود داده را متحمل شود

vB.N3T
پنج شنبه 11 آذر 1389, 15:49 عصر
حرف شما صحیح من کد رو اصلاح کردم اما یه مشکل جدید به وجود اومد ممنون میشه یه کمکی کنید

بله پاور 1 کارش اینه که یه شماره کالا میگیره با یه شماره ماه و قیمت رو میگیره که همون c هست و ثبت میکنه برای کالا وارده و ماه
مثلا
شماره کالا 1
ماه اول
قیمت 1200

پاور 2 میاد یه شماره کالا میگیره و یه شماره ماه و قیمت رو برمیگردونه
اگه شماره مالا پار 1 و ماه اون رو وارد کنیم 1200 رو بر میگیردونه

من الان تو پاور 9 مشکل دارم
پاور 9 میاد میانگین هر ماه رو حساب میکنه
م نمایش میده
مثلا اگه تو پاور 1
شماره کالا 1
ماه 1
بدیم 100
میانگین این میشه 10
100/10 میشه میانین میشه 10
این رو درست چاپ میکنه
حالا اگه تو مرحله 1 اطلاعات رو بزنیم و کیس بعدی هم 1 وارد کنیم و چند تا بار کیس 1 رو اجرا کینم
بعد تو میانگین اولی رو همون 10 که درست هست برمیگردونه
اما از ماه 1 به بعد به هر
میانگین 2 واحد اضافه
میکنه
کد رو میزارم یه نگاه بکنید ممنون

sh4mid
جمعه 12 آذر 1389, 00:02 صبح
خوب


توابع power1 ، power2 واقعا چه کاربردی دارند؟

منظورم این بود که بود ونبود این دو تا تابع فرقی ندارند، بماند ، تابع power9 قراره میانگین چی رو حساب کنه؟
:متفکر::متفکر:

الان تو این حالت شماره کالا از 0 باید شروع بشه تا 9 ، به نظرم از map استفاده کنید بهتره

به کد زیر نگاه بندازید

vB.N3T
جمعه 12 آذر 1389, 00:35 صبح
میانگین هر ماه رو
این کد عالی بود
میگم کد خودمد تغییر ندادی؟ اگه اون درست بشه یه کمی حجم کد نویسی میاد پایین