Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2017, 18:09   #1
bn12345
Новичок
Джуниор
 
Регистрация: 18.04.2017
Сообщений: 2
По умолчанию помогите исправить программу С# - Сделать рандомный массив 10 чисел (от -7 до 3) вывести сумму отрицательных чисел .Указать сколько было положительных чисел

Сделать рандомный массив 10 чисел (от -7 до 3) вывести сумму отрицательных чисел .Указать сколько было положительных чисел 0 тоже положительный.
Код:
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApplication14 
{ 
class Program 
{ 
static void Main(string[] args) 
{ 

int sum = 0; 
int b = 0; 
var rnd = new Random(); 
var set = new HashSet<int>(); 
var arr = new int[10]; 
for (int i = 0; i < arr.Length; i++) 
{ 

int rand; 
do 
{ 
sum += arr.Length; 
b = arr.Count(x => x > 0); 
rand = rnd.Next(-7, 3); 
} while (set.Contains(rand)); 
set.Add(rand); 
arr[i] = rand; 
} 

foreach (var i in arr) 
{ 
Console.Out.WriteLine("{0} ", i); 

} 
Console.WriteLine(sum); 

{ 
Console.Write(" положительные" + b); 
Console.ReadLine(); 
{ 
Console.ReadKey(); 
} 
} 
} 
} 
}

он считает не правильно сумму отрицательных и кол во положительных.




________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 18.04.2017 в 19:41.
bn12345 вне форума Ответить с цитированием
Старый 18.04.2017, 19:47   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нужно подсчёт суммы и количества вынести за цикл,
сначала цикл for (int i = 0; i < arr.Length; i++) - который заполняет случайными неповторяющимися числами
а потом, после того, как массив заполнен - выполняйте подсчёт.

либо, выполняйте подсчёт в цикле, но тогда делайте это после того, как в массив записано очередное значение и не используйте LINQ (лямбда) функции для подсчёта.
делайте "по старинке":
Код:
	for (int i = 0; i < arr.Length; i++) 
	{ 
		int rand; 
		do 
		{ 
			rand = rnd.Next(-7, 3); 
		} while (set.Contains(rand)); 
		set.Add(rand); 
		arr[i] = rand; 
		if(arr[i]>=0){
			b++;
		}
		else{
			sum += arr[i]; 
		}
	}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.04.2017, 10:52   #3
Kayfor
Новичок
Джуниор
 
Регистрация: 21.04.2017
Сообщений: 2
По умолчанию Вариант.

Прошу прощения если криво (тоже учусь).

Код:
 class Program
    {
        static void Main(string[] args)
        {

            int[] Numbers;
            Numbers = new int[10];

            Random rand = new Random();
            int i , positive, negaive , nc;

            i = positive = negaive = nc = 0;

            for (i = 0; i < Numbers.Length; i++)
                Numbers[i] = rand.Next(-3, 7);

            for (i = 0; i < Numbers.Length; i++)
            {
                Console.WriteLine(Numbers[i]);

                if (Numbers[i] < 0)
                    nc += Numbers[i];
               
            }
                
                Console.WriteLine();

            for (i = 0; i < Numbers.Length; i++)
            {
                if (Numbers[i] > 0)
                    positive++;
                else
                    negaive++;
            }

            Console.WriteLine("Количество элементов массива >0  = " + positive);
            Console.WriteLine("Количество элементов массива <0  = " + negaive + " (ноль считается отрицательным числом).");
            Console.WriteLine("Сумма отрицательных элементов массива  = " + nc);
            Console.ReadLine();
        }
    }
Kayfor вне форума Ответить с цитированием
Старый 21.04.2017, 11:10   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

всё нормально.
только непонятно, зачем Вы ноль к отрицательным числам отнесли.
ведь в задании чётко сказано:
Цитата:
Сообщение от bn12345 Посмотреть сообщение
0 тоже положительный.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.04.2017, 11:26   #5
Kayfor
Новичок
Джуниор
 
Регистрация: 21.04.2017
Сообщений: 2
По умолчанию _

Не обратил внимания, каюсь)\ Думаю у ТСа не будет проблем вставить символ "=" в последнее условие.
Kayfor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив из n целых чисел. Нужно написать программу определяющую каких элементов больше положительных или отрицательных koshakk Паскаль, Turbo Pascal, PascalABC.NET 1 17.12.2013 20:55
СИ: Задан массив, состоящий из целых положительных и отрицательных чисел. Создать новый массив из положительных элементов старого Любимая Помощь студентам 0 28.05.2013 18:44
Заданы массивы А(15).В(17),С(10),состоящие из положительных и отрицательных чисел. Определить в каком массиве,больше четных чисел. Richik123 Паскаль, Turbo Pascal, PascalABC.NET 1 19.06.2012 12:24
Вводится 10 чисел. Найти среднее арифметическое положительных чисел и произведение отрицательных. Руся93 Помощь студентам 14 02.10.2011 13:12
сумму положительных и отрицательных чисел матрицы Superlotles Помощь студентам 1 07.01.2010 11:11