Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# для начинающих

Войти
Регистрация
Восстановить пароль
 
Voley
1 / 1 / 0
Регистрация: 30.01.2015
Сообщений: 81
#1

Если первое число массива положительное, то последующие умножить на это число, если отрицательное, то поделить - C#

14.11.2016, 17:27. Просмотров 369. Ответов 14
Метки нет (Все метки)

Из массива А(12) составить новый, включив в него числа, принадлежащие интервалу [-8;2], причем, если первое число оказалось положительным, то все последующие умножить на это число, если отрицательным, то поделить. Результат в консоле.

Добавлено через 46 секунд
Первая часть есть,помогите остальное
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Lbbb3
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] arr = new int[10];
            Random rnd = new Random();
            Console.WriteLine("Первый массив:");
            for (int i = 0; i < 10; i++)
            {
                arr[i] = rnd.Next(-10, 10);
                Console.Write(arr[i] + " ");
            }
            Console.WriteLine("\nВторой массив");
            var newArr = arr.Where(a => a >= -8 && a <= 2).ToArray();
            foreach (int s in newArr) Console.Write(s + " ");
            Console.ReadLine();
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2016, 17:27
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Если первое число массива положительное, то последующие умножить на это число, если отрицательное, то поделить (C#):

Дано целое число n. преобразовать это число так, что если ... - C#
Дано целое число n. преобразовать это число так что если подрят встречаются 2 одинаковых цифры то одна из них удаляется

Если число больше семи, вывести это число суммой 3 и 5 - C#
Даны 2 числа 3 и 5. Пользователь вводит число. И если это число больше семи. Вывести это число суммой 3 и 5. Заранее спасибо.

Заменить первое число на 0, если оно меньше или равно второму - C#
Доброго времени суток. Я не разбираюсь в C#, но сдать эти задачи по учёбе нужно. Очень надеюсь на вашу помощь, решить хотя бы часть...

Выяснить, какое число встречается раньше – положительное или отрицательное - C#
Здравствуйте. Помогите з кодом пожалуйста. using System; using System.Collections.Generic; using System.Linq; using...

Уменьшить первое введенное число в два раза, если оно больше второго введеного числа по абсолютной величине - C#
Составить программу, которая уменьшает первое введенное число в два раза, если оно больше второго введеного числа по абсолютной величине....

Составить программу, которая уменьшает первое введенное число в два раза, если оно больше второго введенного числа по абсолютной величине. - C#
Составить программу, которая уменьшает первое введенное число в два раза, если оно больше второго введенного числа по абсолютной величине.

14
ByMedion
6 / 6 / 3
Регистрация: 19.07.2015
Сообщений: 49
15.11.2016, 23:26 #2
Так разве не подойдет? Код конечно не самый рациональный, но это первое, что пришло в голову...
C#
1
2
3
4
5
for (var i = 1; i < newArr.Count; i++)
{
    if (newArr[0] > 0) newArr[i] *= newArr[0];
    if (newArr[0] < 0) newArr /= newArr[0];
}
0
Voley
1 / 1 / 0
Регистрация: 30.01.2015
Сообщений: 81
17.11.2016, 08:30  [ТС] #3
В чем ошибка?
0
Миниатюры
Если первое число массива положительное, то последующие умножить на это число, если отрицательное, то поделить  
Diamante
1255 / 1016 / 320
Регистрация: 14.08.2016
Сообщений: 3,529
Завершенные тесты: 1
17.11.2016, 15:08 #4
у массива нету свойства Count, есть Length, ну либо метод Count(), но лучше всё ж свойство
0
Voley
1 / 1 / 0
Регистрация: 30.01.2015
Сообщений: 81
17.11.2016, 17:30  [ТС] #5
Почему в полной мере программа не работает, т.е не делит если отрицательное, и не умножает если положительное, последующие элементы. Чего не хватает?
0
Миниатюры
Если первое число массива положительное, то последующие умножить на это число, если отрицательное, то поделить  
Voley
1 / 1 / 0
Регистрация: 30.01.2015
Сообщений: 81
17.11.2016, 17:59  [ТС] #6
Diamante, почти сделал, помогите исправить
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Lbb3
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            int[] arr = new int[10];
            Console.WriteLine("Первый массив:");
            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = rnd.Next(-10, 10);
                Console.Write(arr[i] + " ");
            }
 
            Console.WriteLine("\nВторой массив");
            int[] newArr = arr.Where(a => a >= -8 && a <= 2).ToArray();
            int first = newArr[0];
            bool positiveFirst = first >= 0;
            
            for (var i = 0; i <newArr.Length; i++)
            {
                if (positiveFirst) newArr[i] *= first;
                else newArr[i] /= first;
            }
            foreach (var s in newArr) Console.Write(s + " ");
            Console.ReadLine();
 
        }
    }
}
0
Diamante
1255 / 1016 / 320
Регистрация: 14.08.2016
Сообщений: 3,529
Завершенные тесты: 1
17.11.2016, 18:21 #7
25ю строку, с выводом массива поставьте после цикла фор, в котором вы собссно и производите деление/умножение, просто вы выводите "второй" массив до манипуляций с ним

Добавлено через 6 минут
у вас целочисленное деление( почитайте об этом), измените типы ваших массивов на дабл
0
Voley
1 / 1 / 0
Регистрация: 30.01.2015
Сообщений: 81
17.11.2016, 18:25  [ТС] #8
Diamante, Можете помочь это сделать
0
Diamante
1255 / 1016 / 320
Регистрация: 14.08.2016
Сообщений: 3,529
Завершенные тесты: 1
17.11.2016, 18:31 #9
Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Lbb3
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            double[] arr = new double[10];
            Console.WriteLine("Первый массив:");
            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = rnd.Next(-10, 10);
                Console.Write(arr[i] + " ");
            }
 
            Console.WriteLine("\nВторой массив");
            double[] newArr = arr.Where(a => a >= -8 && a <= 2).ToArray();
            double first = newArr[0];
            bool positiveFirst = first >= 0;
 
            for (var i = 0; i < newArr.Length; i++)
            {
                if (positiveFirst) newArr[i] *= first;
                else newArr[i] /= first;
            }
            foreach (var s in newArr) Console.Write(s + " ");
            Console.ReadLine();
 
        }
    }
}

если нужно округлять
C#
1
            foreach (var s in newArr) Console.Write(Math.Round(s,3) + " ");
это до 3х знаков после запятой
0
Voley
1 / 1 / 0
Регистрация: 30.01.2015
Сообщений: 81
17.11.2016, 18:58  [ТС] #10
Diamante, Все равно не правильно работает, т.к. в новом массиве первый элемент постоянно единица
0
Diamante
1255 / 1016 / 320
Регистрация: 14.08.2016
Сообщений: 3,529
Завершенные тесты: 1
17.11.2016, 19:27 #11
ну так если он больше 0, то его делим на него самого же?! или как?
0
ByMedion
6 / 6 / 3
Регистрация: 19.07.2015
Сообщений: 49
17.11.2016, 20:00 #12
А вообще, для тех, кто начинает, очень поможет тулза ReSharper. Помогает сделать рефакторинг кода, умеет преобразовывать в Linq выражения. Рекомендую!
0
Voley
1 / 1 / 0
Регистрация: 30.01.2015
Сообщений: 81
18.11.2016, 06:07  [ТС] #13
Diamante, Если больше нуля, то последующие числа умножаем на это число. Если меньше, то последующие делим на это число

Добавлено через 3 минуты
Diamante, Вот на форме все правильно работает, надо то же самое, только на консоле
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
using System;
using System.Data;
using System.Linq;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void btCalculate_Click(object sender, EventArgs e)
        {
            Random r = new Random();
 
            int[] input = new int[12];
            for (int i = 0; i < input.Length; i++)
                input[i] = r.Next(-10, 10);
 
            int[] result = input.Where(i => i >= -8 && i <= 2).ToArray();
 
            int first = result[0];
            bool positiveFirst = first >= 0;
 
            for (int i = 1; i < result.Length; i++)
            {
                if (positiveFirst) result[i] *= first;
                else result[i] /= first;
            }
 
            string message = "Исходный массив: \n";
            foreach (var item in input)
                message += $"{item.ToString()}\n";
 
            message += "Результат: \n";
            foreach (var item in result)
                message += $"{item.ToString()}\n";
 
            MessageBox.Show(message);
        }
    }
}
0
ByMedion
6 / 6 / 3
Регистрация: 19.07.2015
Сообщений: 49
18.11.2016, 23:24 #14
а в чем проблема заменить MessageBox на Console.WriteLine?
0
Serg34
89 / 89 / 19
Регистрация: 20.09.2014
Сообщений: 411
Записей в блоге: 3
Завершенные тесты: 1
19.11.2016, 12:27 #15
Цитата Сообщение от Voley Посмотреть сообщение
Diamante, почти сделал, помогите исправить
Voley, Очень не красиво просить о помощи в личку, создавать одинаковые темы а потом выставлять мой код за свои заслуги.
В следующий раз если нужна будет помощь кого-то конкретного, то пишите ему в личку, что Вы создали тему и просите его о помощи.
0
19.11.2016, 12:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2016, 12:27
Привет! Вот еще темы с ответами:

Дано целое число. Если оно является положительным, то прибавить к нему 1; если отрицательным, то вычесть из - C#
Дано целое число. Если оно является положительным, то прибавить к нему 1; если отрицательным, то вычесть из

Вывести полностью число в котором пропущено две цифры, если известно что число кратно 72 - C#
Вывести полностью число 42*4*, в котором пропущено две цифры. если известно что число кратное 72... Что то не допру.( Заранее...

Написать программу поиска двузначных чисел, таких, что если к сумме цифр этого числа прибавить квадрат этой суммы, то получится это число - C#
4. Написать программу поиска двузначных чисел, таких, что если к сумме цифр этого числа прибавить квадрат этой суммы, то получится это...

Найти минимальное положительное число рандомного массива - C#
Доброго времени суток, есть задача найти минимальное положительное число не равное нулю в рандомном массиве, и заменить этим числом...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru