Форум программистов, компьютерный форум CyberForum.ru

Проверить, чередуются ли в массиве четные и нечетные числа. - C++

Восстановить пароль Регистрация
 
RapDog
0 / 0 / 0
Регистрация: 06.11.2013
Сообщений: 43
06.11.2013, 11:25     Проверить, чередуются ли в массиве четные и нечетные числа. #1
3.Дан целочисленный массив размера N. Проверить, чередуются ли в нем четные и нечетные числа. Если чередуются, то вывести 0, если нет, то вывести порядковый номер первого элемента, нарушающего закономерность.

Ребят если можно то с объяснением, никак не могу с этими задачами разобраться! Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2013, 11:25     Проверить, чередуются ли в массиве четные и нечетные числа.
Посмотрите здесь:

Проверить, чередуются ли в массиве четные и нечетные числа C++
C++ Проверить, чередуются ли в массиве положительные и отрицательные числа.
Проверить, чередуются ли в массиве четные и нечетные числа. C++
C++ Функция, сортирующая сначала нечетные числа в массиве по возрастанию, а потом четные по убыванию
Вывести в файл числа, цифры которых чередуются как четные/нечетные C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
06.11.2013, 14:19     Проверить, чередуются ли в массиве четные и нечетные числа. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
int cheredovalka (int n, int *a) {
 int i,ch=a[0]%2;
 for (i=1; i<n; i++) {
  if (a[i]%2==ch) return i;
  else ch^=1;
 }
 return 0;
}
 
int main () {
 const int n=5;
 int a[n]={2,3,4,5,6};
 int ch=cheredovalka(n,a);
 if (ch==0) printf ("\nAll OK, 0");
 else printf ("\nItem %d is kaka",ch+1);
 printf ("\nENTER to EXIT");
 getchar();
}
TSed
19 / 19 / 1
Регистрация: 22.01.2013
Сообщений: 76
06.11.2013, 23:07     Проверить, чередуются ли в массиве четные и нечетные числа. #3
ПерС, интересный у Вас алгоритм, я вот так сделать не догадался, искал повторяющиеся четные/нечетные
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
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main(){
    const int N = 10;
    srand(time(0));
    bool success = true;
    int arr[N];
    for (int i = 0; i < N; i++){
        arr[i] = rand()%100;
        cout<<arr[i]<<" ";
    }
    cout<<endl;
 
    for (int i = 0; i < N-1; i++){
        if ( (arr[i]%2 == 0) && (arr[i+1]%2 == 0) ){
            cout<<"arr["<<i+1<<"]"<<endl;
            success = false;
            break;
        }
        if ( (arr[i]%2 != 0) && (arr[i+1]%2 != 0) ){
            cout<<"arr["<<i+1<<"]"<<endl;
            success = false;
            break;
        }
    }
 
    if (success == true)
        cout<<"0"<<endl;
    system ("pause");
    return 0;
}
versa4e
trainspotting
1082 / 482 / 150
Регистрация: 11.11.2010
Сообщений: 773
12.11.2013, 12:52     Проверить, чередуются ли в массиве четные и нечетные числа. #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
int main() {
    const n = 7;
    int a[n] = {1,2,3,4,5,6,7};
    int i = 1;
    while ((i<n) && ((a[i-1] + a[i]) % 2 != 0)) 
        i++;
    cout << ((i == n) ? 0 : i+1);
    return 0;
}
snyp
4 / 4 / 4
Регистрация: 11.06.2013
Сообщений: 27
12.11.2013, 13:43     Проверить, чередуются ли в массиве четные и нечетные числа. #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
int main(){
    int n, a[1000], c;
    cin >> n;   //длина массива
    for (int i = 0; i < n; i++)
        cin >> a[i];  //считываем элементы
    c = a[0] % 2; //остаток от деления на 2 первого элемента, чётность
    for (int i = 1; i < n; i++)
        if (a[i] % 2 != c)    //если следующий элемент противоположен по чётности предыдущему, то продолжаем
            c = a[i] % 2;
        else   // иначе выводим элемент из ряда вон выходящий и заканчиваем программу
        {
            cout << a[i] << endl;
            return 0;
        }
    cout << 0 << endl; // если же программа не закончится, то всё ок
    return 0;
}
Yandex
Объявления
12.11.2013, 13:43     Проверить, чередуются ли в массиве четные и нечетные числа.
Ответ Создать тему
Опции темы

Текущее время: 11:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru