0 / 0 / 1
Регистрация: 28.04.2010
Сообщений: 11
1

Написать функцию определения количества отрицательных элементов массива

18.05.2010, 00:17. Показов 1871. Ответов 4
Метки нет (Все метки)

Здравствуйте. Подскажите, пожалуйста, ошибку!
Функция все время возвращает кол-во отрицательных элементов, равное размеру одномерного массива. Поэтому всегда выводится условие равенства кол-ва отриц. элементов. Где моя ошибка?

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
using namespace std;
int f(double *A,int g)      // функция определения кол-ва отрицательных элементов
{
int k=0;
for(int j=0; j<g; j++)
        if (A[j]<0)
            k++;
return k;
    }
int main()
{
    int i,g;
    const int ui(20);
    double arrP[ui],arrB[ui];
 
printf("\nКол-во элементов массива P и B: ");
scanf("%d",&g);
 
printf("\nВведите массив P: ");
    for (i=0;i<g;i++)
    {
        printf("\nA[%d]: ",i);
        scanf("%d",&arrP[i]);
        }
 
printf("\nВведите массив B: ");
    for (i=0;i<g;i++)
    {
        
        printf("\nB[%d]: ",i);
        scanf("%d",&arrB[i]);
        }
printf("\nВведенный массив P:\n\n ");
    for (i=0;i<g;i++)
    {
            printf("%d",arrP[i]);
    }
printf("\nВведенный массив B:\n\n");
    for (i=0;i<g;i++)
    {
            printf("%d",arrB[i]);
    }
 
if (f(arrP,g)<f(arrB,g))// если кол-во отриц. элементов в P<B, то
    {
        printf("\nОтрицательных элементов больше в массиве B \n\n");
    for (i=0;i<g;i++)
            printf("%d ",arrB[i]); 
    }
else if (f(arrP,g)>f(arrB,g)){ // иначе если кол-во отриц. элементов в P > B
    printf("\nОтрицательных элементов больше в массивe P \n\n");
    for (i=0;i<g;i++)
        printf("%d",arrP[i]);}
    else 
    {
    printf("\nРавное кол-во отрицательных элементов\n");
    printf("\n 1ый элемент массива P: %d\n",arrP[0]); 
    printf("\n 1ый элемент массива B: %d\n",arrB[0]); 
    }
    return 0; 
    }
Само задание:
Разработать подпрограмму для определения количества отрицательных элементов в одномерном массиве. Используя эту подпрограмму, определить, в каком из двух заданных одномерных массивов Р и В количество отрицательных элементов больше, и вывести его на печать с соответствующим поясняющим текстом. В случае равенства количества нулевых элементов в обоих массивах вывести на печать лишь первые элементы каждого из массивов.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2010, 00:17
Ответы с готовыми решениями:

Вычисление количества отрицательных элементов массива
Заполнить одномерный массив из 10 элементов случайными целыми числами. Вывести массив на чистом...

Написать функцию для определения max элемента массива с элементами типа int
Написать функцию для определения max елемента масиву с елементами типа int.

Написать функцию, которая переставляет местами первые n элементов массива A с последними n элементами массива В
Помогите пожалуйста с задачкой. Написать функцию, которая переставляет местами первые n...

Написать функцию вычисления суммы элементов массива
1).Написать функцию вычисления суммы элементов массива

4
Почетный модератор
7388 / 2634 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
18.05.2010, 00:42 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от RaDs Посмотреть сообщение
double arrP[ui],arrB[ui];
Объявили массив double
Цитата Сообщение от RaDs Посмотреть сообщение
scanf("%d",&arrP[i]);
А теперь прочитай про строки формата и найди ошибку. Потом исправь везде.

Добавлено через 4 минуты
К слову, мне непонятно, для чего тебе нужен iostream и namespace.
1
0 / 0 / 1
Регистрация: 28.04.2010
Сообщений: 11
18.05.2010, 10:53  [ТС] 3
Спасибо! сменил на float все заработало
0
Почетный модератор
7388 / 2634 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
18.05.2010, 12:51 4
А я бы на %lf сменил
1
0 / 0 / 1
Регистрация: 28.04.2010
Сообщений: 11
18.05.2010, 15:19  [ТС] 5
Vourhey,большое спасибо за помощь!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2010, 15:19
Помогаю со студенческими работами здесь

Написать функцию вычисления суммы элементов массива
Добрый вечер! Помогите с кодом. Написать функцию вычисления суммы элементов массива

Написать функцию ,находящую сумму четных элементов массива
Здравствуйте помогите пожалуйста исправить ошибку. Нужно подсчитать сумму четных элементов массива...

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

Написать функцию, вычисляющую среднее арифметическое элементов массива
Доброго вечера, господа. Есть несколько заданий. 1) Написать две функции для вывода на экран...


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

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

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