Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523

Максимальный среди отрицательных и минимальный среди положительных элемент в массиве System Array

04.11.2013, 00:48. Показов 4445. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вопрос относительно одномерного массива System Array
Есть код программы, которая ищет минимальный положительный и максимальный отрицательный элемент массива:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Massiv_1_Array
{
    class Program
    {
        static void Main(string[] args)
        {
            Random r = new Random();
            const int n = 10;
            int[] a = new int[n];
            Console.WriteLine("Массив: ");
            for (int i = 0; i < a.Length; i++)
            {
                a.SetValue(r.Next(-20, 20), i);
                Console.Write(" " + a.GetValue(i));
 
            }
            Console.WriteLine();
            // ошибка при присваивании максимального элемента
            int max = a[0];
 
 
            for (int i = 0; i < a.Length; i++)
 
                if (a[i] > 0 && a[i] < max)
                    max = a[i];
            
             
 
            int min = 0;
 
            for (int i = 0; i < a.Length; i++)
            
                if (a[i] < 0 && a[i] < min)
                    min = a[i];
            
            Console.WriteLine("max: " + max);
            Console.WriteLine("min: " + min);
            Console.ReadKey();
        }
    }
}
Вроде пашет верно, но, но, она считает минимальное положительное число верно, тогда и только тогда когда первый элемент массива сам положителен, а если присвоить max = 0 то при выводе всегда будет max = 0, я не могу понять почему оно так тупо считает
А еще, она выводит максимальное отрицательное число по модулю, а как сделать так чтобы оно выводило максимальное отрицательное простое, ведь максимальное отрицательное число это -1, если его нету то любое следующее за ним число.

Добавлено через 8 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Massiv_1_Array
{
    class Program
    {
        static void Main(string[] args)
        {
            Random r = new Random();
            const int n = 10;
            int[] a = new int[n];
            Console.WriteLine("Массив: ");
            for (int i = 0; i < a.Length; i++)
            {
                a.SetValue(r.Next(-20, 20), i);
                Console.Write(" " + a.GetValue(i));
 
            }
            Console.WriteLine();
            // ошибка при присваивании максимального элемента
            double max = double.MinValue;
            double min = double.MaxValue;
 
            for (int i = 0; i < a.Length; i++)
 
                if (a[i] < 0 && a[i] > max)
                    max = a[i];
            
 
            for (int i = 0; i < a.Length; i++)
            
                if (a[i] > 0 && a[i] < min)
                    min = a[i];
 
            Console.WriteLine("Минимальное среди положительных: " + min, "\n");
            Console.WriteLine("Максимальное среди отрицательных: " + max, "\n");
            Console.ReadKey();
        }
    }
}
Ответ найден, можете закрывать тему
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2013, 00:48
Ответы с готовыми решениями:

Определить максимальный среди положительных, минимальный среди отрицательных и поменять их местами.
Помогите решить пожалуйста 1.Задана матрица D(4,4). Определить максимальный среди положительных, минимальный среди отрицательных и...

Определить максимальный и минимальный элементы среди положительных элементов в массиве
Задание: Задано число n. Заполнить массив A состоящий из n элементов случайными числами, вывести его на экран. Определить максимальный и...

В двумерном массиве найти в каждой строке максимальный элемент, затем среди этих чисел выбрать минимальный
Напечатать те слова, которые встречаются в каждом из двух заданных предложений. Задачу выполнить двумя способами задания строк: массив типа...

6
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
04.11.2013, 00:50
C#
1
2
3
4
5
6
7
8
9
10
        int max = int.MinValue;
        int min = int.MaxValue;
 
        for (int i = 0; i < a.Length; i++)
        {
            if (a[i] > 0 && a[i] < max)
                max = a[i];
            if (a[i] < 0 && a[i] < min)
                min = a[i];
        }
0
1 / 1 / 1
Регистрация: 03.11.2013
Сообщений: 16
04.11.2013, 00:53
Цитата Сообщение от Darkvoid Посмотреть сообщение
Есть вопрос относительно одномерного массива System Array
Код
Есть код программы, которая ищет минимальный положительный и максимальный отрицательный элемент массива:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Massiv_1_Array
{
    class Program
    {
        static void Main(string[] args)
        {
            Random r = new Random();
            const int n = 10;
            int[] a = new int[n];
            Console.WriteLine("Массив: ");
            for (int i = 0; i < a.Length; i++)
            {
                a.SetValue(r.Next(-20, 20), i);
                Console.Write(" " + a.GetValue(i));
 
            }
            Console.WriteLine();
            // ошибка при присваивании максимального элемента
            int max = a[0];
 
 
            for (int i = 0; i < a.Length; i++)
 
                if (a[i] > 0 && a[i] < max)
                    max = a[i];
            
             
 
            int min = 0;
 
            for (int i = 0; i < a.Length; i++)
            
                if (a[i] < 0 && a[i] < min)
                    min = a[i];
            
            Console.WriteLine("max: " + max);
            Console.WriteLine("min: " + min);
            Console.ReadKey();
        }
    }
}

Вроде пашет верно, но, но, она считает минимальное положительное число верно, тогда и только тогда когда первый элемент массива сам положителен, а если присвоить max = 0 то при выводе всегда будет max = 0, я не могу понять почему оно так тупо считает
А еще, она выводит максимальное отрицательное число по модулю, а как сделать так чтобы оно выводило максимальное отрицательное простое, ведь максимальное отрицательное число это -1, если его нету то любое следующее за ним число.

всю задачу можно решить так

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            Random r = new Random();
            const int n = 10;
            int[] a = new int[n];
            Console.WriteLine("Массив: ");
            for (int i = 0; i < a.Length; i++)
            {
                a.SetValue(r.Next(-20, 20), i);
                Console.Write(" " + a.GetValue(i));
 
            }
            Console.WriteLine();
 
            int p_min = a.Where(x => x > 0).Min();
            int n_max = a.Where(x => x < 0).Max();
 
            Console.WriteLine("negative max: " + n_max);
            Console.WriteLine("positive min: " + p_min);
            Console.ReadKey();

а если править ваш код, то надо пробежаться по массиву и для минимальному положительному присвоить любое положительное, а максимальному отрицательному - любое отрицательное.

это необходимо вставить вместо
// ошибка при присваивании максимального элемента
int max = a[0];




Добавлено через 8 минут
Код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Massiv_1_Array
{
    class Program
    {
        static void Main(string[] args)
        {
            Random r = new Random();
            const int n = 10;
            int[] a = new int[n];
            Console.WriteLine("Массив: ");
            for (int i = 0; i < a.Length; i++)
            {
                a.SetValue(r.Next(-20, 20), i);
                Console.Write(" " + a.GetValue(i));
 
            }
            Console.WriteLine();
            // ошибка при присваивании максимального элемента
            double max = double.MinValue;
            double min = double.MaxValue;
 
            for (int i = 0; i < a.Length; i++)
 
                if (a[i] < 0 && a[i] > max)
                    max = a[i];
            
 
            for (int i = 0; i < a.Length; i++)
            
                if (a[i] > 0 && a[i] < min)
                    min = a[i];
 
            Console.WriteLine("Минимальное среди положительных: " + min, "\n");
            Console.WriteLine("Максимальное среди отрицательных: " + max, "\n");
            Console.ReadKey();
        }
    }
}
Ответ найден, можете закрывать тему
в случае если ваш генератор не добавит вам ни одного отрицательного или ни одного положительного - то код ваш опять таки - не сработает
0
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
04.11.2013, 01:45  [ТС]
Цитата Сообщение от CapAsder Посмотреть сообщение
в случае если ваш генератор не добавит вам ни одного отрицательного или ни одного положительного - то код ваш опять таки - не сработает
Почему не сработает?
0
1 / 1 / 1
Регистрация: 03.11.2013
Сообщений: 16
04.11.2013, 01:50
Цитата Сообщение от Darkvoid Посмотреть сообщение
Почему не сработает?
представь, что чисто гипотетически случилось страшное и твой генератор создал тебе массив из след элементов

-1 -2 -3 -4 -9 -3,
тогда тут не будет минимальных положительных.

точнее не так, минимальное положительное у тебя окажется "-1"

соответственно, аналогичная ситуация возникнет, если у тебя будут только все положительные.

максимальный отрицательный элемент у тебя окажется, например "1"
0
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
04.11.2013, 02:11  [ТС]
Цитата Сообщение от CapAsder Посмотреть сообщение
представь, что чисто гипотетически случилось страшное и твой генератор создал тебе массив из след элементов
Я это понял, просто чего не хватает в моем коде, почему в моем он не сработает если выдаст
-1 -5 -7 -10 -6 -7 -8 -8 -9 -2 ?
0
369 / 341 / 108
Регистрация: 12.02.2013
Сообщений: 653
04.11.2013, 09:44
Цитата Сообщение от Darkvoid Посмотреть сообщение
Я это понял, просто чего не хватает в моем коде, почему в моем он не сработает если выдаст
-1 -5 -7 -10 -6 -7 -8 -8 -9 -2 ?
добавьте условие при выводе...
C#
1
2
3
4
if (max != double.MinValue)
     Console.WriteLine(max);
else
     Console.WriteLine("Не найдено");
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2013, 09:44
Помогаю со студенческими работами здесь

Найти минимальный элемент среди положительных
У меня код начинает искать минимальное значение только, если количество положительных не равно нулю, но он ищет среди всех элементов. Как...

Составить программу нахождения максимального среди отрицательных (минимального среди положительных элементо
Составить программу нахождения максимального среди отрицательных (минимального среди положительных элементов массива)

Найти минимальный элемент среди положительных чисел
Составьте программу для решения следующей задачи обработки одномерных массивов произвольной длины. Выведите на монитор исходные данные и...

Найти минимальный элемент среди положительных элементов
Задан одномерный массив А. Найти минимальный элемент среди положительных элементов.

Определить среди чисел минимальный, максимальный и четный элемент
Добрый день!!! Помогите пожалуйста с задачей на C# Ввести три...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru