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

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

Восстановить пароль Регистрация
 
profiq
0 / 0 / 0
Регистрация: 01.05.2013
Сообщений: 17
07.05.2013, 02:58     Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10 #1
Помогите найти ошибку.
Цикл должен удалять все первые элементы пар чисел сумма которых превышает 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--;
            }
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2013, 02:58     Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10
Посмотрите здесь:

Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает 1, а потом все остальные C++
Найти количество первых целых положительных чисел, сумма которых не превышает S C++
Найти количество первых целых положительных чисел, сумма которых не превышает S. Значение S вводить с клавиатуры. C++
Сжать массив, удалив из него все элементы, модуль которых не превышает 1. C++
C++ Найти количество первых целых положительных чисел, сумма которых не превышает S. Значение S вводить с клавиатуры
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
07.05.2013, 06:13     Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10 #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
Миниатюры
Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.05.2013, 06:38     Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10 #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;
}
}
Миниатюры
Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.05.2013, 06:49     Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10 #4
Это если по примеру.
Yandex
Объявления
07.05.2013, 06:49     Цикл должен удалять все первые элементы пар чисел сумма которых превышает 10
Ответ Создать тему
Опции темы

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