ورود

View Full Version : سوال: دریافت ماکسیمم



jasmin.d
جمعه 04 اسفند 1391, 12:41 عصر
سلام میتونید کمکم کنید واسه اینکه دومین عدد ماکسیمم رو چاپ کنه البته با اندیسش این چیزیه که من نوشتم!!


#include "stdafx.h"
using namespace std;
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
int ary[100] , i;
int max , loc;
int num;

num = 0;
for( i=0 ; i<100 ; i++ )
ary[i] = num;
max = ary[1] , loc = 1;
for( i=0 ; i<100 ; i++ )
if ( ary[i] > max )
{
max = ary[i];
loc = i;
}
cout << max << loc;


return 0;
}

saied_hacker
شنبه 05 اسفند 1391, 09:20 صبح
شماره خونه ارایه ها در ++C از صفر شروع میشه پس نباید ماکس رو روی خونه 1 ارایه بزارید.
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
const int MAX = 3; // array size

int ary[MAX] , i;
int max , loc;

//read numbers
for(i = 0; i < MAX; i++)
cin >> ary[i];


// max = arr[0]
max = ary[0] , loc = 0;

//first number
for(i = 0; i < MAX; i++)
if ( ary[i] > max )
{
max = ary[i];
loc = i;
}
cout <<endl << max << loc << endl;
//ary[loc] = 0; // solution 1


// second number
max = ary[0];
for(i = 0; i < MAX; i++)
if(i != loc ) // second solution
if ( ary[i] > max )
{
max = ary[i];
loc = i;
}
cout << max << loc << endl;


return 0;
}


برای اینکه خونه بزرگتری رو که در مرحله اول به دست اوردی رو رد کنی 2 راه داری :
1 - مقدارش رو صفر کنی که باعث میشه ارایت تغییر کنه .
ary[loc] = 0; // solution 1
2- توی محله دوم برای پیدا کردن دومین عدد از روش بپری.
if(i != loc ) // second solution
if ( ary[i] > max )
{
max = ary[i];
loc = i;
}

jasmin.d
یک شنبه 06 اسفند 1391, 23:27 عصر
خیلی ممنونم از راهنماییتون...:لبخندساده: