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

Найти количество нулевых элементов массива и заменить их на найденное значение - C++

Восстановить пароль Регистрация
 
c++\noob
 Аватар для c++\noob
-2 / 2 / 0
Регистрация: 13.11.2010
Сообщений: 52
23.12.2010, 19:17     Найти количество нулевых элементов массива и заменить их на найденное значение #1
Задание:

Найти количество нулевых элементов и заменить их на найденное значение.

Например, 1 2 0 4 5 7 0 – 1 2 2 4 5 7 2

Массив обьявил, а задание не пойму. Помогите кто чем может.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdlib>
#include <iostream>
#include <time.h>
using namespace std;
 
int main(int argc, char *argv[])
{
srand((unsigned)time(NULL));
const int N=20;
int mass[N], i;
int n=rand()%(20)+1;
for (i=0;i<n;i++)
{
mass[i]=rand()%(201)-100;
printf("%d " ,mass[i]);
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2010, 19:17     Найти количество нулевых элементов массива и заменить их на найденное значение
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
23.12.2010, 19:21     Найти количество нулевых элементов массива и заменить их на найденное значение #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main ()
{
    const size_t n = 7;
    int a[n] = {1, 2, 0, 4, 5, 7, 0}, cnt = 0;
 
    for(int i = 0; i < n; ++i)
        if(!a[i])
            ++cnt;
 
    for(int i = 0; i < n; ++i)
        if(!a[i])
            a[i] = cnt;
 
    for(int i = 0; i < n; ++i)
        std::cout << a[i] << ' ';
 
    return 0;
}
knkd
37 / 36 / 2
Регистрация: 08.08.2010
Сообщений: 162
23.12.2010, 20:23     Найти количество нулевых элементов массива и заменить их на найденное значение #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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <stdio.h>
#include <stdlib.h>
 
void dialog(int ** array, size_t * size) {
    printf("Input array size   : ");
    scanf("%lu", size);
    printf("Input array content: ");
 
    *array = (int *) malloc(sizeof(int) * (*size));
    
    size_t i;
    for (i=0; i<(*size); i++) {
        scanf("%d", (*array + i));
    }
}
 
void pprint_array(int * array, size_t size) {
    size_t i;
    printf("Array:");
    for (i=0; i<size; i++) {
        printf(" %d", array[i]);
    }
    printf("\n");
}
 
void vorker(int * array, size_t size) {
    int sum = 0;
    size_t i;
    for (i=0; i<size; i++) {
        if(array[i] == 0) ++sum;
    }
 
    for (i=0; i<size; i++) {
        if(array[i] == 0) array[i] = sum;
    }
}
 
int main() {
    int * array;
    size_t size;
    
    dialog(&array, &size);
    pprint_array(array, size);
    vorker(array, size);
    pprint_array(array, size);
    
    return 0;
}
c++\noob
 Аватар для c++\noob
-2 / 2 / 0
Регистрация: 13.11.2010
Сообщений: 52
23.12.2010, 23:30  [ТС]     Найти количество нулевых элементов массива и заменить их на найденное значение #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
#include <iostream>
#include <conio.h>
 
int main ()
{
srand((unsigned)time(NULL));
const int N=20;
int a[N], i,col = 0;
int n=rand()%(20)+1;
for (i=0;i<n;i++)
{
a[i]=rand()%(201)-100;
printf("%d " ,a[i]);
}  
printf("\n");
 
    for(int i = 0; i < n; i++)
        if(a[i]==0)
            col++;
 
    for(int i = 0; i < n; i++)
        if(a[i]==0)
            a[i] = col;
 
    for(int i = 0; i < n; i++)
 
printf("%d ",a[i]);
printf("\n");
 
    getch ();
}
Yandex
Объявления
23.12.2010, 23:30     Найти количество нулевых элементов массива и заменить их на найденное значение
Ответ Создать тему
Опции темы

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