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

Найти количество элементов массива, равных 0 - C++

Восстановить пароль Регистрация
 
alextsi
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 12
13.11.2010, 21:49     Найти количество элементов массива, равных 0 #1
Добрый вечер всем.
У меня есть задание:
1.Разработать алгоритм программы, которая решает Ваше индивидуальное задание (варианты индивидуальных заданий приведены ниже; номер варианта выбирается в соответствии со своим номером в списке группы).
2.На основе разработанного алгоритма в среде Visual Studio 2005 написать консольную программу на языке C++ с использованием динамических массивов вещественных чисел размера n (n вводит пользователь).

Само задание :
1.найти кол-во элементов массива,равных 0.
2.Найти сумму элементов массива,рассположенных после минимального элемента.
3.Упорядочить элементы массива по возрастанию модулей элементов.

Знаю,что может навязываюсь,но сколько читал,так и не сумел создать код.Буду очень благодарен человеку,кто сможет помочь мне написать код.Спасибо.
Код нужно написать используя либо Cin,cout,либо printF,scanF.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.11.2010, 21:58     Найти количество элементов массива, равных 0 #2
могу на C написать
надо?

Добавлено через 2 минуты
1.
C
1
2
3
 
for (int i=0; i<n; i++)
if (massiv[i]==0) kol_vo++;
kol_vo объявишь как инт и обнулишь, т.е.
C
1
int kol_vo=0;
alextsi
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 12
13.11.2010, 21:59  [ТС]     Найти количество элементов массива, равных 0 #3
Мне нужно на С++
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.11.2010, 22:03     Найти количество элементов массива, равных 0 #4
2
C
1
2
3
4
5
6
7
8
int min=massiv[0];
int k=0;
int sum=0;
for (int j=1;j<n;j++)
if (min>massiv[j]) { min=massiv(j); k=j;} // ischem min element
 
for (int kk=k+1;kk<n;kk++)
sum+=massiv[kk];

n - длина массива

Цитата Сообщение от alextsi Посмотреть сообщение
Мне нужно на С++

а что с С не подойдет или сам подкорректировать такие лугкие задание не сожешь
alextsi
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 12
13.11.2010, 22:06  [ТС]     Найти количество элементов массива, равных 0 #5
я дуб в этом...учусь на телекомуникационщика...ты можешь написать мне целый код пожалуйста ?
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.11.2010, 22:08     Найти количество элементов массива, равных 0 #6
Цитата Сообщение от alextsi Посмотреть сообщение
я дуб в этом...учусь на телекомуникационщика...ты можешь написать мне целый код пожалуйста ?
код с c C подойдет
третью задачу писать на С???
alextsi
0 / 0 / 0
Регистрация: 04.11.2010
Сообщений: 12
13.11.2010, 22:13  [ТС]     Найти количество элементов массива, равных 0 #7
с++ все задачи...
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
13.11.2010, 22:14     Найти количество элементов массива, равных 0 #8
Цитата Сообщение от alextsi Посмотреть сообщение
с++ все задачи...
а сам не пробовал писать???

вставь мой код в студиа и проверь!!! удачи...
Raizer
 Аватар для Raizer
5 / 5 / 1
Регистрация: 11.10.2009
Сообщений: 24
13.11.2010, 22:24     Найти количество элементов массива, равных 0 #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Вот код на С++

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
#include <iostream>
using namespace std;
 
int main()
{
        const int n = 10;
        int mas[n] = {5, -2, 8, 0, 5, -3, 0 , 2, 4, 9};
        
        int null = 0;
        for (int i = 0; i < n; i++)
        {
            if (mas[i] == 0) null++;
        }
        cout <<"Null: " << null <<endl;
 
        int min = mas[0];
        int minIndex = 0;
        for (int i = 0; i < n; i++)
        {
            if (min > mas[i]) 
            {
                min = mas[i];
                minIndex = i;
            }
        }
        
        int sum = 0;
        for (int i = minIndex + 1; i < n; i++)
        {
            sum += mas[i];
        }
        cout <<"Summa: " << sum <<endl;
 
        int temp;
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j<=n - i ; j++)
            {
                if (abs(mas[j]) > abs(mas[j+1]))
                {
                    temp = mas[j];
                    mas[j] = mas[j+1];
                    mas[j+1] = temp;
                }
            }
        }
        
    
        cout <<"Massiv: \n";
        for (int i = 0; i < n; i++)
        {
             cout <<mas[i] <<" ";
        }
        cin.get();
        return 0;
}
Или необходимо создать три программы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2010, 22:37     Найти количество элементов массива, равных 0
Еще ссылки по теме:

Количество элементов массива,равных 0 C++
Заполнить массив случайными числами; найти количество элементов массива, равных 50, и их индексы C++
Найти количество элементов массива, равных заданному числу C++

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
13.11.2010, 22:37     Найти количество элементов массива, равных 0 #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <iostream>
#include <cmath>
 
int countNull(double *, int);
double sumAfterMin(double *, int);
void absBubbleSort(double *, int);
 
int main()
{
    double *arr;
    int n;
 
    setlocale(LC_ALL, "Rus"); // Включием русскую локаль
 
    // Вводим количество элементов
    std::cout << "Введите n: ";
    std::cin >> n;
 
    arr = new double [n]; // Выделяем память под массив из n элементов
 
    // Вводим элементы массива
    for (int i = 0; i < n; i++)
    {
        std::cout << "arr[" << i << "] = ";
        std::cin >> arr[i];
    }
 
    std::cout << std::endl << "Количество элементов массива, равных нулю: " << countNull(arr, n);
    std::cout << std::endl << "Сумма элементов массива, расположенных после минимального: " << sumAfterMin(arr, n);
    std::cout << std::endl << "Исходный массив: ";
 
    for (int i = 0; i < n; i++)
        std::cout << arr[i] << "  ";
 
    absBubbleSort(arr, n);
 
    std::cout << std::endl << "Массив, отсортированный по возрастанию модулей элементов: ";
 
    for (int i = 0; i < n; i++)
        std::cout << arr[i] << "  ";
 
    std::cout << std::endl;
 
    delete [] arr; // Очищаем память
 
    std::cin.get();
    return 0;
}
 
// Функция считает количество элементов массива, равных нулю
int countNull(double *arr, int n)
{
    int count = 0; // Счётчик нулевых элементов
 
    // Бежим по массиву
    for (int i = 0; i < n; i++)
        if (arr[i] == 0.0) // Если очередной элемент равен нулю
            count++; // Увеличиваем счётчик
 
    return count; // Возвращаем полученный счётчик
}
 
// Функция вычисляет количество элементов массива, расположенных после минимального элемента
double sumAfterMin(double *arr, int n)
{
    int minIndex = 0;
    double sum = 0.0;
 
    // Ищем индекс минимального элемента
    for (int i = 1; i < n; i++)
        if (arr[minIndex] > arr[i]) // Если очередной элемент с очередным индексом меньше элемента с ранее найденным индексом
            minIndex = i; // Делаем текущий индекс индексом минимального элемента
 
    // Складвыем все элементы, расположенные после минимального
    for (int i = minIndex + 1; i < n; i++)
        sum += arr[i];
 
    return sum; // Возвращаем полученную сумму
}
 
// Сортировка массива по возрастанию модулей элементов
void absBubbleSort(double *arr, int n)
{
    // Бежим по массиву
    for (int i = 0; i < n; i++)
    {
        for (int j = n - 1; j > i; j--)
        {
            // Если модуль левого элемента больше модуля правого элемента
            if (fabs(arr[j - 1]) > fabs(arr[j]))
            {
                // Меняем элементы местами
                double temp = arr[j - 1];
                arr[j - 1] = arr[j];
                arr[j] = temp;
            }
        }
    }
}
Yandex
Объявления
13.11.2010, 22:37     Найти количество элементов массива, равных 0
Ответ Создать тему
Опции темы

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