Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
profiq
3 / 0 / 0
Регистрация: 01.05.2013
Сообщений: 33
#1

Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10

07.05.2013, 02:58. Просмотров 401. Ответов 3
Метки нет (Все метки)

Помогите найти ошибку.
Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10.
Например: 1 2 3 4 5 6 7 8 9 10
Результатом должно быть 1 2 3 4 6 8 10
n - размерность массива
C++
1
2
3
4
5
6
7
8
9
10
11
for(int j=1; j<=n; j++)
    {
 
        if((j%2==0)&&(arr[j]+arr[j+1]>10))
            {
                for(int s=j+1; s<n; s++)
                arr[s-1]=arr[s];
                j--;
                n--;
            }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2013, 02:58
Ответы с готовыми решениями:

Вывести все комбинации из указанного набора чисел, сумма которых не превышает заданное число
Всем привет. Поставлена такая задача - предположим, что есть массив из трех...

Найти все парные трехзначные числа, сумма которых не превышает 10
Найти все парные трехзначные числа, сумма которых не превышает 10. Зарание...

Сжать массив, удалив из него все элементы модуль которых не превышает 1. Заполнить эти элементы нулями
Во время перестановки, когда первый 0 достигает конца массива, выскакивает...

Найти количество первых целых положительных чисел, сумма которых не превышает S
Найти количество первых целых положительных чисел, сумма которых не превышает...

Выбрать максимальное количество чисел в массиве, сумма которых не превышает заданное
Доброго времени суток!Помогите написать или найти готовую программу.Дан набор...

3
zitxbit
89 / 741 / 279
Регистрация: 11.04.2012
Сообщений: 971
07.05.2013, 06:13 #2
Вариант 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
#include <stdio.h>
#include <conio.h>
 
#define N 10
 
int main(int argc, char* argv[])
{
    int A[N] = { 3, 5, 1, 9, 8, 7, 6, 4, 2, 9 };
 
    for (int t = 0; t < N; t++)
        printf("%d ",A[t]);
 
    printf("\n");
 
    int i = 0;
    while (i < N-1)
    {
        if (A[i] + A[i+1] > 10)
        {
            for (int k = i; k < N; k++)
                A[k] = A[k+1]; 
            
            continue;
        }
 
        i++;
    }
 
    for (int m = 0; m < N; m++)
        printf("%d ",B[m]);
 
    return 0;
}
http://codepad.org/4XOy2ITN

Вариант 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
#include <stdio.h>
#include <conio.h>
 
#define N 10
 
int main(int argc, char* argv[])
{
    int A[N] = { 3, 5, 1, 9, 8, 7, 6, 4, 2, 9 };
 
    for (int t = 0; t < N; t++)
        printf("%d ",A[t]);
 
    printf("\n");
    
    int k = 0, B[N] = { 0 };
    for (int i = 0; i < N-1; i++)
    {
        if (A[i] + A[i+1] <= 10) B[k++] = A[i];
        B[k] = A[i+1];
    }
 
    for (int m = 0; m < N; m++)
        printf("%d ",B[m]);
 
    _getch();
 
    return 0;
}
http://codepad.org/k1g8kxgi
2
Миниатюры
Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10  
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.05.2013, 06:38 #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
#include <iostream>
using namespace std;
 
int main()
{
 int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
 int n = 10;
 int flag = 0;
 for(int j = 0; j < n; j++)
 {
     
    if((j % 2 == 0 && flag == 0) && (arr[j] + arr[j + 1] > 10))
     {
         for(int s = j + 1; s < n; s++)
            arr[s - 1] = arr[s];
 
         flag = 1;
         n--;
     }
     
     if((j % 2 != 0 && flag == 1) && (arr[j] + arr[j + 1] > 10))
     {
         for(int s = j + 1; s < n; s++)
            arr[s - 1] = arr[s];
 
         flag = 0;
         n--;
     }
 }
    for (int i = 0; i < n; i++)
        cout << arr[i] << ' ';
 
    cout << endl;
    cin.get();
 
    return 0;
}
}
1
Миниатюры
Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10  
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.05.2013, 06:49 #4
Это если по примеру.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2013, 06:49

В начале массива расположить все элементы, модуль которых не превышает 1, а после них - все остальные
Ребят, помогите, пожалуйста! Нужно написать программу в С++ для решения задачи:...

Определить количество пар чисел сумма которых является простым числом
Написать програму которая по заданым N числам опредиляет количество пар, сумма...

Найти в массиве количество четных чисел, сумма цифр в которых не превышает заданного числа P
Найти количество четных чисел, сумма цифр в которых не превышает заданного...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru