2 / 2 / 1
Регистрация: 12.06.2013
Сообщений: 57
1

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

14.06.2013, 21:23. Показов 11689. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, подскажите, у меня есть массив скажем A[10], мне нужно найти в нём чётные и нечётные элементы, подскажите как?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2013, 21:23
Ответы с готовыми решениями:

Отсортировать в массиве четные элементы, а нечетные оставить на своих местах
Прочитала много, вроде и алгоритм понимаю, но не могу реализовать. Нужно отсортировать в массиве...

В первом одномерном массиве найти все нечетные элементы, во втором одномерном массиве найти все четные элементы и из них сформировать массив
1. Ввести одномерный массив используя генератор случайных чисел. Одномерный массив может быть...

Чётные и нечётные элементы в массиве
Дан массив А(n). Сколько в нём чётных и нечётных элементов, каких элементов больше и на сколько? Не...

Поменять в массиве четные и нечетные элементы
Поменять в массиве четные и нечетные элементы А Паскаль ,напишите программу,пожалуйста !!!

15
216 / 63 / 16
Регистрация: 26.02.2012
Сообщений: 114
14.06.2013, 21:25 2
C
1
2
3
4
5
6
7
8
9
10
11
for (i = 0; i < 10; i++)
{
    if (A[i] % 2 == 0)
    {
        /*чётное*/
    }
    else
    {
        /*нечётное*/
    }
}
1
7 / 7 / 4
Регистрация: 09.06.2013
Сообщений: 27
14.06.2013, 23:28 3
Так для справки скажу что
C
1
(A[i] % 2 == 0)
означает что % это остаток от деления, и если он равен нулю при делении на два, то число четное.
1
2 / 2 / 1
Регистрация: 12.06.2013
Сообщений: 57
15.06.2013, 06:46  [ТС] 4
Цитата Сообщение от BraunDe Посмотреть сообщение
Так для справки скажу что
C
1
(A[i] % 2 == 0)
означает что % это остаток от деления, и если он равен нулю при делении на два, то число четное.
Благодарю за справку!!! Ещё вопрос, если размер массива заранее неизвестен, например нужно ввести размер с клавиатуры, такое возможно? В учебнике все примеры по массивам с константой, сам пробовал сделать ввод с клавы, неудачно
0
216 / 63 / 16
Регистрация: 26.02.2012
Сообщений: 114
15.06.2013, 10:05 5
Если в переменной j хранится размер массива, то замекнить в цикле условие i < 10 на i < j.
1
2 / 2 / 1
Регистрация: 12.06.2013
Сообщений: 57
15.06.2013, 14:21  [ТС] 6
Немного не про то спрашивал.
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
const int N=5;
int main()
{
int i, A[N], sum, count;
sum=0;
count=0;
printf("Vvedite massiv A\n");
for(i=0; i<N; i++){
    printf("Vvedite A[%d]=", i);
    scanf_s("%d", &A[i]);
    }
for(i=0; i<N; i++)
    {   
        if (A[i] % 2 == 0)
        {
        sum+=A[i];
        }
        
        else
        {
        count++;
        }   
    
    }
    printf("%d\n", sum);
    printf("%d\n", count);
_getch();
}
вот есть код, размер массива тут константа, а мне нужно размер массива ввести с клавиатуры в программе.

Например так:

C
1
2
printf("Введите размер массива N");
scanf("%d", &N);
0
216 / 63 / 16
Регистрация: 26.02.2012
Сообщений: 114
15.06.2013, 15:18 7
C
1
2
3
4
5
6
7
8
9
int *A;
 
/*ввод N*/
 
A = (int*)malloc(N * sizeof(int));
 
/*работа с массивом*/
 
free(A);
1
40 / 37 / 15
Регистрация: 25.10.2012
Сообщений: 112
16.06.2013, 00:53 8
Цитата Сообщение от Desu_Is_A_Lie Посмотреть сообщение
C
1
A = (int*)malloc(N * sizeof(int));
Вот только не стоит приводить результат malloc, а по сути - всё верно.
0
216 / 63 / 16
Регистрация: 26.02.2012
Сообщений: 114
16.06.2013, 10:06 9
Цитата Сообщение от xanderfomin Посмотреть сообщение
не стоит приводить результат malloc
В C практически везде видел приведение, а C++ компилятор вообще выдаст ошибку.
0
40 / 37 / 15
Регистрация: 25.10.2012
Сообщений: 112
16.06.2013, 13:31 10
Desu_Is_A_Lie, вот цитата из книги "Linux. Системное программирование" Роберта Лава:
Язык C автоматически повышает указатели на void при любых типах назначения. Таким образом, <...>, не требуется приводить тип возвращаемого значения malloc() к lvalue, используемому при назначении. Язык программирования C++, однако, не выполняет автоматическое повышение указателей void. Следовательно, пользователям C++ приходится приводить тип возвращаемого значения malloc() <...>. Некоторым программистам на C нравится приводить результат любой функции, возвращающей указатель на void, в том числе и malloc(). Я выступаю против этой практики, так как она скроет ошибку, если возвращаемое значение функции вдруг поменяется на что-то другое, отличное от указателя на void. Помимо этого, подобное приведение типов также прячет ошибку, если функция неправильно объявлена (Необъявленные функции по умолчанию возвращают значение типа int. Превращение целочисленного значения в указатель не может быть автоматическим, и при этом создаётся предупреждение. Приведение типа подавляет возвращения предупреждения). Хотя первый случай не является большим риском для malloc(), второй, определённо, скрывает опасность.
Его доводы мне кажутся достаточно убедительными, поэтому ИМХО стоит взять за правило отказ от приведения результата malloc().
1
408 / 227 / 43
Регистрация: 10.02.2013
Сообщений: 780
16.06.2013, 14:51 11
после этих действий нужно создавать массив, а не раньше как у вас

C
1
2
3
printf("Введите размер массива N");
scanf("%d", &N);
int A[N];
0
58 / 58 / 44
Регистрация: 06.10.2012
Сообщений: 98
16.06.2013, 15:07 12
Такой код не будет компилироваться, размер массива должен быть определен как константное выражение (надо пользоваться освобождением памяти)
0
408 / 227 / 43
Регистрация: 10.02.2013
Сообщений: 780
16.06.2013, 15:21 13
Цитата Сообщение от Z_A_S Посмотреть сообщение
Такой код не будет компилироваться, размер массива должен быть определен как константное выражение (надо пользоваться освобождением памяти)
перед тем как писать такие высказывания попробуй скомпилировать сначала, код абсолютно рабочий (смотри вложение )
Миниатюры
Найти в массиве чётные и нечётные элементы  
0
58 / 58 / 44
Регистрация: 06.10.2012
Сообщений: 98
16.06.2013, 15:48 14
Прошу:
Миниатюры
Найти в массиве чётные и нечётные элементы  
0
408 / 227 / 43
Регистрация: 10.02.2013
Сообщений: 780
16.06.2013, 15:51 15
ну по крайней мере Qt ест мою запись
0
58 / 58 / 44
Регистрация: 06.10.2012
Сообщений: 98
16.06.2013, 15:56 16
пропустил имя массива, но сути это не меняет
Миниатюры
Найти в массиве чётные и нечётные элементы  
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2013, 15:56
Помогаю со студенческими работами здесь

Проверить, чередуются ли в массиве четные и нечетные элементы
Помагиет рещить задачу плиз заранее спс..... Дан массив ненулевых целых чисел размера N....

Четные и нечетные элементы в массиве поменять местами
помогите написать, рандомно заполнить одномерный массив числами, четные и не четные элементы...

Переставить местами четные и нечетные элементы в массиве
Здравствуйте уважаемые форумчани!Прошу с задачей мне помочь,нужно переставить местами четные и...

В одномерном массиве четные элементы разделить на 2, нечетные умножить на 3
Люди помогите пожалуйста, не знаю как сделать программу. В одномерном массиве четные элементы...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru