Форум

Data.BG Форуми: Задача за пресмятане на сума от елементи в интервал от масив от целочислени стойности - Data.BG Форуми

Прехвърляне към съдържание

Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

Задача за пресмятане на сума от елементи в интервал от масив от целочислени стойности

#1
Потребителят е неактивен   zoros 

  • Група: Потребители
  • Мнения: 255
  • Регистриран: 01-January 02
  • Репутация: 0
  • Град:София
Здравейте, преглеждам задачи за изпит по ООП и между тях има една, която не съм решавал досега и не ми е ясна :):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OOP
{
class Program
{
public static void FillArray(int[] array, int min, int max)
{
Random random = new Random();
for (int index = 0; index < array.Length; index++)
{
array[index] = random.Next(min, max);
}
}

public static void PrintArray(int[] array)
{
for (int index = 0; index < array.Length; index++)
{
Console.Write("{0} ", array[index]);
}
}

public static int CalculateSumBetweenLeftRidghtBorder(int[] array)
{
Console.WriteLine("Please enter left border");
int left = int.Parse(Console.ReadLine());
Console.WriteLine("Please enter rigth border");
int rigth = int.Parse(Console.ReadLine());
int sum = 0;

for (int index = 0; index < array.Length; index++)
{
if (array[index].Equals(left) && array[index].Equals(rigth))
{
sum = // ?
}
}
return sum;
}

static void Main(string[] args)
{
int[] array = new int[15];
FillArray(array, -50, 150);
PrintArray(array);
Console.WriteLine();
Console.WriteLine("{0} ", CalculateSumBetweenLeftRidghtBorder(array));
}
}
}

Задачата тук е да се създаде едномерен масив от случайни 15 числа и да се намери сумата на тези стойности, които се намират в границите на интервал, който е зададен от потребителя. Стандартната част я направих без проблем, но не мога да се сетя как да намеря сумата от стойностите в интервала, например ако имаме една матрица [0 1 2 3 4 5] и искам да пресметна стойността на сумата между числата 1 и 4, която в случая е пет как да го направя?
Благодаря предварително и весели празници :)!

Мнението беше редактирано от zoros: 11.04.15 - 22:29

0

#2
Потребителят е неактивен   vivass 

  • Група: Потребители
  • Мнения: 259
  • Регистриран: 22-March 05
  • Репутация: 21
  • Град:София
public static int CalculateSumBetweenLeftRidghtBorder(int[] array)
{
Console.WriteLine("Please enter left border");
int left = int.Parse(Console.ReadLine());
Console.WriteLine("Please enter rigth border");
int rigth = int.Parse(Console.ReadLine());
int sum = 0;

for (int index = left; index <= rigth; index++)
{
sum += array[index];
}
return sum;
}
0

#3
Потребителят е неактивен   zoros 

  • Група: Потребители
  • Мнения: 255
  • Регистриран: 01-January 02
  • Репутация: 0
  • Град:София
Не, не става по този начин :(. Дава резултат 0 или, че масива е излязъл от обхват.
0

#4
Потребителят е неактивен   vivass 

  • Група: Потребители
  • Мнения: 259
  • Регистриран: 22-March 05
  • Репутация: 21
  • Град:София
Аз мислех, че ще въвеждате границата тип: нулевото число и петото число от масива (индексите на числата).
А Вие май я искате като две конкретни числа от масива (стойнотите им).


public static int CalculateSumBetweenLeftRidghtBorder(int[] array)
{
Console.WriteLine("Please enter left border");
int left = int.Parse(Console.ReadLine());
Console.WriteLine("Please enter rigth border");
int rigth = int.Parse(Console.ReadLine());
int sum = 0;

int leftIndex = Array.IndexOf(array, left);
int rightIndex = Array.IndexOf(array, rigth);
for (int index = leftIndex; index <= rightIndex; index++)
{
sum += array[index];
}
return sum;
}
0

#5
Потребителят е неактивен   zoros 

  • Група: Потребители
  • Мнения: 255
  • Регистриран: 01-January 02
  • Репутация: 0
  • Град:София
Да, точно така! Сега работи идеално! Много Ви благодаря, разбрах го и ще си го ползвам и за в бъдеще :)!

Edit: Вашата идея да се вземат елементите от масива по индекси е била вярна, тъй като е възможно при генерирането на различни стойности да има такива, които са еднакви.
Моя е грешката, извинявам се за което :)!

Мнението беше редактирано от zoros: 12.04.15 - 01:18

0

Споделете тази тема чрез:


Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

1 потребители четат тази тема
0 регистрирани потребители, 1 гости и 0 анонимни потребители


Data.BG e форум за дискусии. Data.BG не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Data.BG.

Close  Member Login