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

нужно упростить (Найти сумму S первой группы смежных равных элементов) - C++

Восстановить пароль Регистрация
 
hinata46243
1 / 1 / 0
Регистрация: 12.10.2012
Сообщений: 46
18.12.2012, 09:45     нужно упростить (Найти сумму S первой группы смежных равных элементов) #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
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
#include <stdio.h>
#include <conio.h>
#include <vcl.h>
#define size 21
 
void input_array(int array[], int n);
void output_array(int array[], int n);
bool processing(int array[], int n);
 
int main()
{
    int array[size];
    int n, m;
    bool find = false;
    printf("Enter n <= 20: ");
    scanf("%d", &n);
    input_array(array, n);
    printf("Source array:\n");
    output_array(array, n);
    find = processing(array, n);
    if(find) ++n;
    printf("\nResult array:\n");
    output_array(array, n);
    getch();
    return 0;
}
void input_array(int array[], int n)
{
    int i;
    randomize();
    for(i = 0; i < n; ++i)
    {
        //printf("Enter array[%d]: ", i);
        //scanf("%d", &array[i]);
        array[i]=random(11)-5;
    }
}
void output_array(int array[], int n)
{
    int i;
    for(i = 0; i < n; ++i)
    {
        printf("%d ", array[i]);
    }
    printf("\n");
}
bool processing(int array[], int n)
{
    int count, i, j;
    for(i = 0; i < n - 1; ++i)
    {
        count = 1;
        j = i + 1;
        while(array[i] == array[j] && j < n)
        {
            ++j;
            ++count;
        }
        if(count > 1)
        {
            array[n] = count * array[i];
            return 1;
        }
    }
    return 0;
}
Найти сумму S первой группы смежных равных элементов (группа – два или более элементов) и вставить S в массив после правого элемента этой группы.
Всё работает.
Помогите сделать процесс фунции без логического оператора bool.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2012, 09:45     нужно упростить (Найти сумму S первой группы смежных равных элементов)
Посмотрите здесь:

C++ Найти сумму всех элементов первой строки матрицы X[5][5]
Найти сумму последней группы четных элементов и записать ее в итоговый файл. C++
В одномерном массиве найти сумму номеров всех элементов равных нулю. C++
C++ Одномерные массивы и указатели (найти количество элементов массива, равных 0, сумму элементов массива...)
C++ решение двумерных массивов (Вычислить сумму элементов не равных нулю и посчитать их количество, найти номера столбцов с положительными элементами)
C++ C++ Найти сумму элементов первой и третьей строк матрицы
Найти сумму элементов первой строки матрицы C++
C++ Из каждой группы равных между собой элементов массива нужно оставить только один

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Рыжий Лис
Просто Лис
 Аватар для Рыжий Лис
209 / 164 / 44
Регистрация: 17.05.2012
Сообщений: 611
Записей в блоге: 4
18.12.2012, 15:17     нужно упростить (Найти сумму S первой группы смежных равных элементов) #2
Может так
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
#include <stdio.h>
#include <conio.h>
#include <vcl.h>
#define size 21
 
void input_array(int array[], int n);
void output_array(int array[], int n);
bool processing(int array[], int n);
 
int main()
{
    int array[size];
    int n, m;
    printf("Enter n <= 20: ");
    scanf("%d", &n);
    input_array(array, n);
    printf("Source array:\n");
    output_array(array, n);
   // if(processing(array, n)) ++n;
 
 int count, i, j;
    for(i = 0; i < n - 1; ++i)
    {
        count = 1;
        j = i + 1;
        while(array[i] == array[j] && j < n)
        {
            ++j;
            ++count;
        }
        if(count > 1)
        {
            array[n] = count * array[i];
            --n;
            break;
        }
    }
    ++n;
 
    printf("\nResult array:\n");
    output_array(array, n);
    getch();
    return 0;
}
void input_array(int array[], int n)
{
    int i;
    randomize();
    for(i = 0; i < n; ++i)
    {
        //printf("Enter array[%d]: ", i);
        //scanf("%d", &array[i]);
        array[i]=random(11)-5;
    }
}
void output_array(int array[], int n)
{
    int i;
    for(i = 0; i < n; ++i)
    {
        printf("%d ", array[i]);
    }
    printf("\n");
}
Запутано получилось. (и может быть неправильно)
Yandex
Объявления
18.12.2012, 15:17     нужно упростить (Найти сумму S первой группы смежных равных элементов)
Ответ Создать тему
Опции темы

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