Как найти элементы с нечетными номерами массива

0 / 0 / 0

Регистрация: 17.11.2016

Сообщений: 18

1

Найти все элементы массива с нечетными порядковыми номера

17.11.2016, 20:48. Показов 2049. Ответов 2


Студворк — интернет-сервис помощи студентам

C++ Дан целочисленный массив A размера N (≤ 15). Переписать в новый целочисленный массив B все элементы с нечетными порядковыми номера-ми (1, 3, …) и вывести размер полученного массива B и его содержимое



0



Александр321321

55 / 18 / 19

Регистрация: 11.11.2014

Сообщений: 463

18.11.2016, 07:03

2

Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

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
#include <tchar.h>
#include <conio.h>
#include <stdio.h>
int A[15];
int B[7];
 
int main(int argc, char* argv[])
{
      printf("A:= ");
     for(int i=0;i<15;i++){
      A[i]=i*2;
      printf("%i ",A[i]);
     }
     printf("n");
     printf("B:= ");
     for(int i=0;i<15;i++){
     if (i % 2 != 0) {
         B[i]=A[i];
         printf("%i ",B[i]);
     }
     }
 
     getch();
        return 0;
}



0



0 / 0 / 0

Регистрация: 17.11.2016

Сообщений: 18

19.11.2016, 10:59

 [ТС]

3

изменил :
#include «stdafx.h»

#include «windows.h»

#include <iostream>

#include «stdlib.h»

#include «iomanip»

#include <stdio.h>

int A[15];

int B[15];

int main(int argc, char* argv[])

{

printf(«A:= «);

int i=0;

do{

A[i] = i*2 +7;

printf(«%i «, A[i]);

i++;

} while ( i < 15);

printf(«n»);

printf(«B:= «);

for (int i = 0; i<15; i++){

if (i % 2 != 0){

B[i] = A[i];

printf(«%i «, B[i]);

}

}

system(«pause»);

return 0;

}



0



nums = [1,2,3,4,5,6,7,8,9,10,11,12]
odds = [ n for n in nums if n%2 ]
print odds

Gives:

>>> 
[1, 3, 5, 7, 9, 11]

This can be put into a function like so:

def getOdds(aList):
    return [ n for n in aList if n%2 ]

Example usage:

myOdds = getOdds(nums)
print("{0} has {1} odd numbers which were {2}".format(nums,len(myOdds),myOdds))
print("The odd numbers sum to {0}".format(sum(myOdds)))

Produces:

>>> 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] has 6 odd numbers which were [1, 3, 5, 7, 9, 11]
The odd numbers sum to 36

As to what you’re doing wrong, you’re iterating over an iterable containing the elements 0 to size this won’t always be the value of num (unless num is indeed range(size)). Once you make i represent a value in num which you’re iterating over, if i%2 == 0 will mean it’s even, if you want odds, the number musn’t be divisible by two. Hence this should be changed to either if i%2 != 0 or if i%2. You will also have to declare the odd list before the for i ... loop, so you can append the numbers in num which meet the condition in the if i%2 selection control structure. You should appened the number in num by doing odd.append(i), at the moment you’re reassigning odd a new value. You also should not be incrementing i. ‘i’ should represent a number in num not the index of the number in num.

Найти в массиве нечётные числа

Уровень сложности:






  • Задание
  • Решение

Дан массив размера n, заполнить его случайными числами, Найти все нечётные числа массива.

Читаем у нас на сайте — Как работать с массивами. После создания массива, его необходимо заполнить случайными числами, а для этого нужно воспользоваться генератором случайных чисел. Пример работы программы смотрим ниже:

// array_even_numbers.cpp: определяет точку входа для консольного приложения.

#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;

int main(int argc, char* argv[])
{
    srand(time(0)); // генерация случайных чисел
    cout << "Enter size array: ";
    int array_size;
    cin >> array_size;
    int *ptrarray = new int [array_size]; // создание динамического массива 
        for (int count = 0; count < array_size; count++)
            ptrarray[count] = (rand() % 99 + 1); //заполнение массива случайными числами с масштабированием от 1 до 99
        cout << "array = ";
        for (int count = 0; count < array_size; count++)
            cout << ptrarray[count] << " "; // печать первоначального массива
        cout << "nRezult = ";
        for (int count = 0; count < array_size; count++)
            if ((ptrarray[count] % 2) != 0) // отсеиваем чётные числа
            cout << ptrarray[count] << " "; // печать нечётных значений элементов массива
        delete [] ptrarray; // высвобождение памяти
        cout << endl;
    system("pause");
    return 0;
}

Создаётся динамический массив, который заполняется случайными числами в диапазоне [1;99] и выполняется поиск нечётных чисел. Вот результат:

CppStudio.com

Enter size array: 20
array = 60 78 78 77 75 94 49 7 8 81 35 94 8 38 29 31 76 42 12 67
Rezult = 77 75 49 7 81 35 29 31 67

Следующие статьи помогут вам в решении данной задачи:

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.

Дан массив A размера N. Вывести вначале его элементы с четными номерами (в порядке возрастания номеров), а затем — элементы с нечетными номерами (также в порядке возрастания номеров): A2,A4,A6,. . ., A1,A3,A5, . . . . Условный оператор не использовать.

Решение задачи

Решение задачи довольно простое. Мы будем использовать два цикла для прохода по массиву. В первом цикле мы будем выводить на экран элементы массива с чётными номерами, во втором цикле – с нечётными номерами.

Важно помнить, что индексация в массивах происходит с нуля. То есть первый элемент А1 будет иметь индекс 0, а элемент А2 – индекс 1.

Сначала объявим переменную, которую будем использовать в циклах:

int i = 1;

Сначала будем обращаться к элементам с чётными номерами в порядке возрастания и выводить их на экран:

while (i <= elements.length - 1) {
    System.out.print(elements[i] + " ");
    i = i + 2;
}

Затем начнём выводить на экран нечётные элементы:

i = 0;
while (i <= elements.length - 1) {
    System.out.print(elements[i] + " ");
    i = i + 2;
}

Полный исходный код программы

import java.util.Arrays;

public class ArrayPrintEvenOddElements {
    public static void main(String[] args) {
        printArray(new Integer[]{1, 2, 3, 4, 5, 6, 7});
        printArray(new Integer[]{1, 2, 3, 4, 5, 6});
        printArray(new Integer[]{1});
    }

    public static void printArray(Object[] elements) {
        if (elements == null || elements.length == 0) {
            return;
        }

        System.out.print(Arrays.toString(elements) + ": ");

        int i = 1;
        while (i <= elements.length - 1) {
            System.out.print(elements[i] + " ");
            i = i + 2;
        }

        System.out.print(", ");

        i = 0;
        while (i <= elements.length - 1) {
            System.out.print(elements[i] + " ");
            i = i + 2;
        }

        System.out.println();
    }
}

Пусть дано:Вывести номера всех минимальных нечетных элементов. Нумерация
начинается с нуля. Если таких элементов нет, то вывести сообщение об
этом.n =8 Массив =0, 5, 9, 1, 2, 7, 1, 3 Результат = 3 6
n =8 Массив= 2, 6, 10, 6, 8, 8, 8, 2 Результат = нечетных элементов нет
Вот мой вариант:

//вывести номера всех минимальных нечётных элементов массива
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Rus");
    int n;
    cout << "Введите размерность массива - ";
    cin >> n;
    int* a = new int[n];
    for (int i = 0; i < n; i++)
    {
        cout << "a[" << i << "]= ";
        cin >> a[i];
    }
    int min = a[0];
    for (int i = 0; i < n; i++) 
    {
        if (a[i] % 2 != 0) 
        {
            if (a[i] < min) min = a[i];
        }
        else if (a[i] == min)
            cout << "Номера всех минимальных нечётных элементов равна " << n;
        cout << endl;         
    }
    if (min % 2 == 0)
        cout << "не чётных элементов нет/n" << endl;
    cout << min << endl;
    delete []a;
    return 0;
}

Что тут не верно?Помогите исправить пожалуйста.Не серчайте,я только учусь работать с массивами…Задача всё ещё не решена.

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как найти imponte phoenix
  • Как исправить кривой перевод в gta san andreas
  • Как найти норму выработки на смену
  • Как составить написать письмо к сотрудничеству
  • Как по отрывку видео найти оригинал

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии