1.Как вывести положительные элементы массива?2.Как вывести элементы массива кратные пяти?
Чтобы вывести положительные элементы массива нужно пройтись о нему обычным циклом for, а внутри цикла делать проверку if (a[i] > 0) then write(a[i], ‘ ‘); Аналогично и с кратными 5, только условие будет выглядеть так: if (a[i] mod 5 = 0) then write(a[i], ‘ ‘);
- Связаться с нами
- Правила проекта
- Лицензионное соглашение
- Политика конфиденциальности
Как вывести только положительные числа массива c
Сообщение от Катя08
Даны любые числа.Как вывести на экран только отрицательные числа по убыванию.
Подсказка :
«Отрицательные меньше нуля.
генерируете любые числа.
сравниваете их с нулем.
сортируете
выводите на экран»
Регистрация: 16.09.2010
Сообщений: 3
#include #include using namespace std; int cmpDouble(const void* d1,const void* d2) < return (int)(*(double*)d1 - *(double*)d2); >int main() < double a[5]= ; qsort((void*)a,5,sizeof (double),cmpDouble); for(int i=4; i>=0; --i) < if(a[i]<0) cout << a[i] << endl; >return 0; >
Вывести массив 3
Задан массив из n целых чисел. Вывести только его положительные элементы, не меняя первоначальный порядок.
Входные данные
Первая строка содержит число n (1 ≤ n ≤ 100). Во второй строке записаны n целых чисел, каждое из которых не превышает по модулю 100.
Выходные данные
В первой строке вывести количество положительных элементов массива. Во второй строке вывести сами положительные элементы. Если положительных элементов в массиве нет, то вывести “NO”.
Алгоритм решения задачи
- Фильтруем входные данные с помощью оператора Where LINQ.
Решение
using System; using System.Linq; class Program < static void Main(string[] args) < var n = Convert.ToInt32(Console.ReadLine()); var p = Array.ConvertAll(Console.ReadLine().Split(' '), s => int.Parse(s)).ToList() .Where(x => x > 0); var count = p.Count(); if (count == 0) < Console.WriteLine("NO"); > else < Console.WriteLine(count); Console.WriteLine(string.Join(" ", p)); > > >
Не получается получить все положительные числа из массива. Что не так?
Кроме того, как написали выше, что ты упускаешь нулевой элемент, ты так же поймаешь исключение IndexOutOfRange, потому что попытаешься обратиться к элементу массива с индексом 5, которого у тебя нет. Так же тебе нужно вынести int nm из цикла и инициализировать нулем, иначе каждую итерацию с положительным числом у тебя будет сбрасываться сумма.
Сonsole.WriteLine(«Сумма всех положительных числе:» + nm); — это тоже стоит написать после цикла, а не внутри него, а то у тебя сейчас выводится каждое положительное число отдельно.
В итоге, это должно выглядеть вот так:
class Pragram
static void Count()
int[] num = < 5, -7, -1, 3, 9 >;
int nm = 0;
for (int i = 0; i < num.Length; i++)
int number = num[i];
if (number > 0)
nm += number;
>
>
Console.WriteLine(«Сумма всех положительных числе:» + nm);
>
static void Main()
Count();
Console.ReadLine();
>
>