ورود

View Full Version : سوال: نحوه ی بدست آوردن ماکزیمم یک عدد در حاصل جمع یک آرایه



javad.movassagh
جمعه 11 فروردین 1391, 15:59 عصر
سلام،
دوستان عزیز اگه کسی این سوال رو میدونه لطفا کمک کنه.
کد زیر رو نوشتم و میخوام حاصل جمع جزئی رو در یک آرایه که n عنصریه
قرار بدم.
اما برای یافتن بزرگترین عدد خروجی مشکل دارم...
یعنی همه ی حاصل جمع ها رو حساب می کنه ولی من میخوام فقط بزرگترین عدد چاپ بشه.
ممنون میشم.


public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println ("Please Enter a number for input array numbers.");
int num = input.nextInt();
System.out.println ("Now, enter numbers for finding max.");
int [] array = new int [num];
for (int a = 0; a < num ; a++)
{
array[a] = input.nextInt();
}
System.out.print("Max is: \n");
int max = 0;
int max1 = 0;
for (int i = 0; i < num ; i++)
{

for (int j = num - i - 1; j >= i; j--)
{
max1 += array [j];
System.out.printf("j\t%d\n", max1);
}
for (int k = num - 1 ; k >= i; k--)
{
max += array [k];
System.out.printf("k\t%d\n", max);
}
max1 = 0;
max = 0;
}

}
}

spiderman200700
جمعه 11 فروردین 1391, 17:51 عصر
سلام دوست عزیز.
عذر میخوام، شما دقیقا میخوای چی چاپ بشه؟

javad.movassagh
جمعه 11 فروردین 1391, 19:30 عصر
ببینید من میخوام مجموع حاصل جمع های جزئی ای که در آرایه ی n عنصری هست چاپ بشه.
به عنوان مثال اعداد 2,-4,,8,3,-5,4,6,-7,2 اگه توسط کاربری وارد شده باشه، مجموع بزرگترین عدد این مجموعه 16 هست چون
برنامه باید اعداد 8,3,-5,4,6 انتخاب کنه... فکر کنم این مثال واضح تر باشه.

spiderman200700
جمعه 11 فروردین 1391, 21:41 عصر
اگه مسئله رو درست فهمیده باشم، شما میخواید برنامه ماکزیمم جمع ها ، از بین تمام جمع های جزئی رو در خروجی چاپ کنه.
در این صورت این برنامه این کار رو انجام میده:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please Enter a number for input array numbers.");
int num = input.nextInt();
System.out.println("Now, enter numbers for finding max.");
int[] array = new int[num];
for (int a = 0; a < num; a++) {
System.out.print("n" + (a + 1) + "= ");
array[a] = input.nextInt();
}

int max = 0;
for (int i = 0; i < num; i++) {
int maxtemp = 0;
for (int j = i; j < num; j++) {
maxtemp += array[j];
if (maxtemp > max) {
max = maxtemp;
}
}
}
System.out.println("Max is: " + max);
}

اگه فکر میکنید مسئله رو اشتباه فهمیدم، لطفا توضیح بیشتری بدید.
موفق باشید

javad.movassagh
شنبه 12 فروردین 1391, 07:07 صبح
خیلی ممنون. پاسختون درسته...