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

Используя собственную функцию, определить количество элементов - C++

Восстановить пароль Регистрация
 
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
08.01.2013, 00:27     Используя собственную функцию, определить количество элементов #1
Есть задача
Определить два одномерных массива А(19) и В(26); первый ввести с клавиатуры, а второй задать начальной инициализацией.
Используя собственную функцию, определить количество элементов, больших 5 в первом массиве и больших 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
#include "stdafx.h"
#include "iostream"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    const int n = 5;
    
    int A [n];
    int B [6] = {1,3,4,6,7,8};
    for ( int i = 0; i < n; i++ )
        cin>> A [i];
    for ( int i = 0; i < n; i++ )
        cout << A [i]<< endl;
    for ( int i = 0; i < 6; i++)
    cout << B[i] << endl;
    cout << kol (k, sum) << endl;
 
        return 0;
}
 
int kol ( int k = 5, int sum = 0)
{
    for (int i=0; i<n; i++)
    {
        if (A[i]>k)
            sum++;
    }
 
    cout << "Kol-vo el-tov bolshe 5:" << sum << endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2013, 00:27     Используя собственную функцию, определить количество элементов
Посмотрите здесь:

Используя стек, определить функцию, которая переводит выражение в префиксную форму C++
C++ Используя рекурсивную функцию, выдать первые n элементов последовательности
Создать собственную функцию для расчёта выражения C++
C++ Определить степень числа с целочисленным показателем, не используя функцию pow
Дан массив целых чисел. Определить количество четных элементов и количество элементов, оканчивающихся на цифру 5 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
08.01.2013, 00:40     Используя собственную функцию, определить количество элементов #2
а вас компилятор не ругает? на то что n объявлена внутри main() и в вашей функции она не доступна

Добавлено через 2 минуты
C++
1
2
3
for ( int i = 0; i < n; i++ )
        cout << A [i]<< " ";
cout<<endl;
вот так будет лучше выводить одномерный массив

Добавлено через 1 минуту
и да в main() у вас не объявлены k, sum за них тоже вас ругать должен компилятор
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
08.01.2013, 00:43  [ТС]     Используя собственную функцию, определить количество элементов #3
на что только компилятор у меня не ругается!
поможете разобраться толком?
n надо объявить вне тела??
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
08.01.2013, 00:49     Используя собственную функцию, определить количество элементов #4
ну начнем с определения функции, туда нужно передать что, условие сам масив, и размер его, возврашать будем мы количество
C++
1
2
3
4
5
6
7
8
9
int countOfGreater(int* array,int size,int flag){// массив передаем как указатель
    int count = 0;
    for (int i = 0; i < size; i++) {
        if (array[i] > flag) {
            count++;
        }
    }
    return count;
}
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
08.01.2013, 00:53  [ТС]     Используя собственную функцию, определить количество элементов #5
хорошо,это я поняла...сейчас переделаю под свое...
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
08.01.2013, 00:54     Используя собственную функцию, определить количество элементов #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
int main()
{
    SetConsoleCP(1251); //для русского языка в консоле
    SetConsoleOutputCP(1251);
    const int n = 5;
 
    int A [n];
    int B [6] = {1,3,4,6,7,8};
    for ( int i = 0; i < n; i++ ){
        cout << "Введите " << i << " Элемент " ;
        cin>> A [i];
    }
    for ( int i = 0; i < n; i++ )
        cout << A [i]<< " ";
    cout << endl;
    for ( int i = 0; i < 6; i++)
        cout << B[i] << " ";
    cout <<endl;
    cout << "Больше 5 = " <<countOfGreater(A,n,5) << endl;
    cout << "Больше 3 = " <<countOfGreater(B,6,3) << endl;
 
 
    system("pause");
    return 0;
}
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
08.01.2013, 01:09  [ТС]     Используя собственную функцию, определить количество элементов #7
а со вторым массивом так же дописывать в функции?

Добавлено через 5 минут
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
35
36
#include "stdafx.h"
#include "iostream"
 
using namespace std;
int kol ( int* A, int n, int k);
int _tmain(int argc, _TCHAR* argv[])
{
    const int n = 5;
    int k=5,sum=0;
    int A [n];
    int B [6] = {1,3,4,6,7,8};
    for ( int i = 0; i < n; i++ ){
        cout << "Введите " << i << " Элемент " ;
        cin>> A [i];
    }
    for ( int i = 0; i < n; i++ )
        cout << A [i]<< " ";
        cout << endl; 
    for ( int i = 0; i < 6; i++)
        cout << B[i] << " ";
        cout << endl;
    cout << "Bolshe 5 = " kol (A, n, 5) << endl;
    
        return 0;
}
 
int kol ( int* A, int n, int k)
{
    int sum = 0;
    for (int i=0; i<n; i++)
    {
        if (A[i] > k)
            sum++;
    }
    return sum;
}

ругается мой компилятор....
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
08.01.2013, 09:55     Используя собственную функцию, определить количество элементов #8
что пишет,на что ругается
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
08.01.2013, 10:04     Используя собственную функцию, определить количество элементов #9
22 строка:
C++
1
cout << "Bolshe 5 = " << kol (A, n, 5) << endl;
Одну операцию << пропустили
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
08.01.2013, 11:50     Используя собственную функцию, определить количество элементов #10
Цитата Сообщение от Love-Love Посмотреть сообщение
а со вторым массивом так же дописывать в функции?
не нужно писать для другого масива другую функцию,
ну начнем с определения функции, туда нужно передать что, условие сам масив, и размер его, возврашать будем мы количество
мы можем передавать туда любой массив, причем можем даже передавать не всю его длину а только часть, и число больше которого мы ищем,отдельную функцию писать уже не надо
C++
1
2
cout << "Больше 5 = " <<countOfGreater(A,n,5) << endl;
    cout << "Больше 3 = " <<countOfGreater(B,6,3) << endl;
вызов происходит вначале от массива А длиной n, потом от массива B известной длины 6
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
08.01.2013, 15:55  [ТС]     Используя собственную функцию, определить количество элементов #11
СПАСИБО!!!!
я все сделала....
поняла(что САМОЕ главное!)

и ГЛАВНОЕ : работает-таки!!!

премного благодарна,что уделили новичку свое время!!!!

Добавлено через 1 минуту
Цитата Сообщение от Schizorb Посмотреть сообщение
22 строка:
C++
1
cout << "Bolshe 5 = " << kol (A, n, 5) << endl;
Одну операцию << пропустили
да,спасибо))
Сегодня утром все-таки увидела свои ошибки....

Добавлено через 33 минуты
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
// Составить функцию, которая по трём заданным сторонам треугольника вычисляет его площадь.
 
#include "stdafx.h"
#include "cmath"
#include "iostream"
 
using namespace std;
float pl (float sum, float x, float y, float z, float p, float S);
int _tmain(int argc, _TCHAR* argv[])
{
    int x, y, z;
    float p, S, sum;
 
    cout << "Vvedite tri storony treugol'nika:" << endl;
    cin >> x;
    cin >> y;
    cin >> z;
    cout << "S treugol'nika = " << pl (sum, x, y, z, p, S) << endl;
    return 0;
}
 
float pl (float sum, float x, float y, float z, float p, float S)
{   
    sum = x + y + z;
    p = sum / 3;
    S = sqrt (p*(p-x)*(p-y)*(p-z));
    return S;
}
а вот тут не подскажете?...функция не хочет работать...
программка запускается,но не считает площадь...
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
08.01.2013, 16:39     Используя собственную функцию, определить количество элементов #12
C++
1
float pl (float sum, float x, float y, float z, float p, float S)
При таком объявлении во время вызова функции создаются локальные копии переменных, значения которых утериваются
1>h:\my documents\visual studio 2010\projects\tr\tr\tr.cpp(20): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
1>h:\my documents\visual studio 2010\projects\tr\tr\tr.cpp(20): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
1>h:\my documents\visual studio 2010\projects\tr\tr\tr.cpp(20): warning C4244: аргумент: преобразование "int" в "float", возможна потеря данных
1>h:\my documents\visual studio 2010\projects\tr\tr\tr.cpp(20): warning C4700: использована неинициализированная локальная переменная "S"
1>h:\my documents\visual studio 2010\projects\tr\tr\tr.cpp(20): warning C4700: использована неинициализированная локальная переменная "p"
1>h:\my documents\visual studio 2010\projects\tr\tr\tr.cpp(20): warning C4700: использована неинициализированная локальная переменная "sum"
1> tr.vcxproj -> h:\my documents\visual studio 2010\Projects\tr\Debug\tr.exe
========== Построение: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========

У вас должны были быть подобные предупреждения.
Вы могли бы сделать так, чтобы ваш код заработал
C++
1
2
  float x, y, z;
    float p=0.0, S=0.0, sum=0.0;
но правильней было примерно так
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
#include "cmath"
#include "iostream"
using namespace std;
bool check(float x, float y, float z);
// или inline bool check(float x, float y, float z);
float pl (float x, float y, float z);
int _tmain(int argc, _TCHAR* argv[])
{
    float x, y, z;
    do{
        cout << "Vvedite tri storony treugol'nika:" << endl;
        cin >> x >> y >> z;
    }while (!check(x,y,z));
    cout << "S treugol'nika = " << pl (x, y, z) << endl;
    return 0;
}
 
float pl (float x, float y, float z)
{   
    float p = (x + y + z)/2.0f; 
    return sqrt (p*(p-x)*(p-y)*(p-z));
}
bool check(float x, float y, float z)
{
    return (x+y>z) && (x+z>y) && (z+y>x) && (x>0) && (y>0) && (z>0);
}
И еще, здесь есть правило - один вопрос - одна тема. Будут вопросы - спрашивайте.

Добавлено через 7 минут
или так
C++
1
2
3
4
5
6
7
8
inline bool check(float x, float y, float z){
    if (!((x+y>z) && (x+z>y) && (z+y>x) && (x>0) && (y>0) && (z>0))) 
    {
        cout << endl << "Error. It's not triangle"<<endl; 
        return false;
    }
    else return true;
};
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2013, 16:45     Используя собственную функцию, определить количество элементов
Еще ссылки по теме:

C++ Используя функцию, составить программу, которая считает количество изменений знака в массиве чисел. y=f(x). В С++
C++ Массивы. Используя сортировку массива, определить количество элементов, совпадающих по значению с максимальным
C++ Создать собственную функцию для расчёта выражения

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

Или воспользуйтесь поиском по форуму:
Love-Love
 Аватар для Love-Love
6 / 6 / 0
Регистрация: 27.10.2012
Сообщений: 94
08.01.2013, 16:45  [ТС]     Используя собственную функцию, определить количество элементов #13
я поняла...уже проверила...РАБОТАЕТ!!!
Спасибо огромное!!!!!!
Yandex
Объявления
08.01.2013, 16:45     Используя собственную функцию, определить количество элементов
Ответ Создать тему
Опции темы

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