Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
andrew1zistar
0 / 0 / 0
Регистрация: 03.06.2015
Сообщений: 4
#1

Логическая функция, которая помогает определить количество чётных элементов в массиве

03.06.2015, 17:25. Просмотров 595. Ответов 6
Метки нет (Все метки)

Не могу понять где баг в программе.

Задание: написать логическую функцию, которая выводит количество чётных элементов из рандомного массива.

Программа после компиляции выводит подряд числа от 0 до n-1, а должна совсем не это(((
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
bool isF(int x) {
    if (x%2==0){
return true; }
    else {
return false; }
}
 
int main() {
cout << "n=";
int n; 
cin>>n;
    int k=0;
        int mas[100];
for (int i=0; i<n; i++) {
mas[i] = rand()%100;}
for (int i=0; i<n; i++) {
    if (isF(mas[i])) {
cout << k++; } }
 
system("pause");
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2015, 17:25
Ответы с готовыми решениями:

Определить количество чётных элементов содержащихся в массиве
Ввести одномерный массив целых чисел, вывести его, опреде-лить – количество...

Найти количество чётных элементов в массиве
Массив кол-во элементов 12. Значение элементов от 2 до ... с шагом 2. Найти...

Определить каких элементов в заданном массиве больше: чётных или нечётных
помогите ввести массив, состоящий из 20 элементов целого типа. и как определить...

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

В массиве A из N элементов (N не больше 30) определить количество элементов, имеющих четные значения, и сумму этих элементов.
1. В массиве A из N элементов (N не больше 30) определить количество элементов,...

6
kylroma
Одессит
213 / 75 / 37
Регистрация: 30.12.2013
Сообщений: 280
Записей в блоге: 1
Завершенные тесты: 2
03.06.2015, 18:03 #2
заменить строки 16, 17, 18 на:
C++
1
2
3
4
5
    for (int i=0; i<n; i++) {
        if (isF(mas[i]))
            ++k;
    }
    cout << k;
0
ValeryS
Модератор
7211 / 5474 / 681
Регистрация: 14.02.2011
Сообщений: 18,515
03.06.2015, 18:07 #3
Цитата Сообщение от andrew1zistar Посмотреть сообщение
C++
1
2
3
4
5
6
bool isF(int x) {
   if (x%2==0){
return true; }
   else {
return false; }
}
тавтология
достаточно
C++
1
2
3
4
bool isF(int x) 
{
   return (x%2==0);
}
про вывод сказал kylroma,
0
andrew1zistar
0 / 0 / 0
Регистрация: 03.06.2015
Сообщений: 4
03.06.2015, 20:52  [ТС] #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
bool isF(int x) 
{
   return (x%2==0);
}
 
int main() {
cout << "n=";
int n; 
cin>>n;
    int k=0;
        int mas[100];
for (int i=0; i<n; i++) {
mas[i] = rand()%100;}
for (int i=0; i<n; i++) {
    if (isF(mas[i])) {
++k; }
cout << k; } 
 
system("pause");
return 0;
}
и что это меняет в выводе?
программа всё равно не выдаёт количество элементов с нужным свойством

ps насчёт тавтологии согласен
0
Даценд
Модератор
Эксперт .NET
4099 / 3918 / 2593
Регистрация: 20.04.2015
Сообщений: 7,108
03.06.2015, 20:59 #5
andrew1zistar,
Сравни своё
Цитата Сообщение от andrew1zistar Посмотреть сообщение
C++
1
2
3
4
for (int i=0; i<n; i++) {
if (isF(mas[i])) {
++k; }
cout << k; }
С тем, что предложил kylroma
Цитата Сообщение от kylroma Посмотреть сообщение
C++
1
2
3
4
5
for (int i=0; i<n; i++) {
   if (isF(mas[i]))
       ++k;
}
cout << k;
0
mr_mczakenberg
65 / 65 / 72
Регистрация: 10.04.2015
Сообщений: 281
03.06.2015, 21:02 #6
Программа после компиляции выводит подряд числа от 0 до n-1, а должна совсем не это(((
Программа до этого выводила каждый раз k++, как раз от 0 до n-1.

Все работает.
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
#include <iostream>
#include <stdlib.h>
#include <ctime>
using std::cout;
using std::cin;
bool isF(int x) 
{
return (!(x%2));
}
int main() 
{
    int n;
    cout << "Vvedite kolichestvo n=";
    cin>>n;
    srand(time(0));
    
    int k=0;
    int mas[100];
    for (int i=0; i<n; i++) 
    {
        mas[i] = rand()%100;
        std::cout<<mas[i]<< " ";
    }
    std::cout<<"\n";
        
    for (int i=0; i<n; i++) 
        if (isF(mas[i]))  ++k;
    
    cout << k; 
    system("pause");
return 0;
}
0
andrew1zistar
0 / 0 / 0
Регистрация: 03.06.2015
Сообщений: 4
03.06.2015, 21:21  [ТС] #7
вот именно что не отличается)

Добавлено через 10 минут
Понял! Скобка всему виной)
Всем спасибо!)))
0
03.06.2015, 21:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2015, 21:21

Одномерный массив. Найти и напечатать количество чётных элементов и количество нечётных элементов
массив F задан случайными числами в диапазоне от -30 до 20. найти и напечатать...

В массиве А(n) (n<=7) хотя бы один нуль. Определить количество положительных и количество отрицательных элементов к первому нулю.
В массиве А(n) (n&lt;=7) хотя бы один нуль. Определить количество положительных и...

Программа которая находит в массиве количество элементов равных нулю
Помогите пожалуйста написать программу которая вычисляет сколько елементов в...


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

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

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