0 / 0 / 6
Регистрация: 04.10.2016
Сообщений: 110
1

Удалить все строки, сумма элементов которых является двузначным числом

24.11.2016, 17:41. Показов 1558. Ответов 6
Метки нет (Все метки)

Дан массив, содержащий целые числа, размерностью n на n. Использовать дополнительные массивы нельзя. Выполнить следующие действия:

Удалить все строки, сумма элементов которых является двузначным числом.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2016, 17:41
Ответы с готовыми решениями:

Удалить все строки матрицы, в которых среднее арифметическое элементов является двузначным числом
В двумерном массиве, элементы которого целые числа, произвести следующие действия, удалить все...

Удалить все строки, в которых среднее арифметическое элементов массива является двузначным числом
2) В двумерном массиве, элементы которого - целые числа, произвести следующие действия:Удалить все...

В двумерном массиве удалить все строки, в которых среднее арифметическое элементов является двузначным числом.
В двумерном массиве удалить все строки, в которых среднее арифметическое элементов является...

Выяснить, является ли сумма элементов четвертой строки массива двузначным числом
Дан двумерный массив. Выяснить, является ли сумма элементов четвертой строки массива двузначным...

6
0 / 0 / 6
Регистрация: 04.10.2016
Сообщений: 110
28.11.2016, 16:32  [ТС] 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
#include <iostream>
using namespace std;
int main() {
    int n, m;
    cout << "n="; cin >> n;
    cout << "m="; cin >> m;
    int **a = new int*[n];
    cout << "Vvedite massiv\n";
    for (int i = 0; i < n; i++)
 
    {
        a[i] = new int[m];
        for (int j = 0; j < m; j++)
            cin >> a[i][j];
    }
    int s = 0;
    int i = 0; int j = 0;
    s += a[i][j];
 
    bool flag;
    for (i = 0; i < n; i++)
 
    {
        flag = false;
        for (j = 0; j < m; j++)
            if (s >= 10 && s < 100)
            {
                flag = true;
                break;
            }
        if (flag)
        {
            for (int k = i; k < n - 1; k++)
                a[k] = a[k + 1];
            n--;
            i--;
        }
    }
 
    cout << "New massiv\n";
    for (i = 0; i < n; i++, cout << endl)
        for (j = 0; j < m; j++)
            cout << a[i][j] << "\t";
    for (i = 0; i < n; i++)
        delete[] a[i];
    delete[] a;
    system("pause");
    return 0;
 
}
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
30026 / 16496 / 3344
Регистрация: 12.02.2012
Сообщений: 27,466
Записей в блоге: 5
28.11.2016, 19:38 3
Лучший ответ Сообщение было отмечено toypypp как решение

Решение

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
#include <iostream>
 
using namespace std;
 
int main() {
 
    int n,m,nn;
    int i_f,i_t,s,i,j;
    cout << "n="; cin >> n;
    cout << "m="; cin >> m;
 
    int **a = new int*[n];
    cout << "Vvedite massiv\n";
    for (i = 0; i < n; i++)
 
    {
        a[i] = new int[m];
        for (j = 0; j < m; j++)
            cin >> a[i][j];
    }
 
    nn=0;
    i_t=0;
    i_f=0;
    while (1)
    {
        s=0;
        for (j=0; j<m; j++) s+=a[i_f][j];
        if ((abs(s)<100) && (abs(s)>9))
        {
          for(j=0; j<m; j++) a[i_t][j]=a[i_f][j];
          i_t++;
          nn++;
        }                   
        i_f++;
        if (i_f >= n) break;
    }                   
    
    for (i=nn; i<n; i++) delete [] a[i];    
 
    n=nn;
 
    cout << "New massiv\n";
    for (i = 0; i < n; i++, cout << endl)
        for (j = 0; j < m; j++)
            cout << a[i][j] << "\t";
    for (i = 0; i < n; i++)
        delete[] a[i];
    delete[] a;
    system("pause");
    return 0;
 
}
1
1481 / 945 / 811
Регистрация: 30.04.2016
Сообщений: 3,304
29.11.2016, 19:55 4
toypypp, вот несложный для понимания код. Надеюсь, пригодится

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 <iostream>
 
using namespace std;
 
int main()
{    
int N, sum, num; 
cout << "Введите размерность матрицы:" << endl;
cout << "N = ";
cin >> N; 
int **A = new int* [N]; 
for (int i = 0; i < N; i++)
{
A[i] = new int [N];
} 
cout << "Введите матрицу:" << endl;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
cin >> A[i][j];
}
}
cout << "Матрица после удаления:" << endl;
for (int i = 0; i < N; i++)
{
sum = 0;
for (int j = 0; j < N; j++)
{
sum += A[i][j];
}
if ((sum > 99) || (sum < 10))
{
num = i;
for(int j = 0; j < N; j++)
{
cout << A[num][j] << " ";
}
cout << endl;
}
}
for (int i = 0; i < N; i++) 
{
delete [] A[i];
}
system("pause");
return 0;   
}
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
30026 / 16496 / 3344
Регистрация: 12.02.2012
Сообщений: 27,466
Записей в блоге: 5
01.12.2016, 20:01 5
Fixer_84, а где удаление строк? Вы просто не печатаете ненужные строки, но в массиве они остаются.
1
1481 / 945 / 811
Регистрация: 30.04.2016
Сообщений: 3,304
01.12.2016, 20:37 6
Catstail, спасибо за ваше замечание. Под удалением вы подразумевайте сдвиг массива строк? Если да, то попробую переделать.
2
0 / 0 / 0
Регистрация: 18.01.2020
Сообщений: 1
21.01.2020, 16:33 7
Catstail, Наткнулась на данную тему и проверила ваш код, выдает обратный результат: нужные для вывода строки удаляет и выводит те, которые следовало удалить. Как бы это исправить?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.01.2020, 16:33

Удалить строки, сумма цифр которых является числом Фибоначчи
Задан двумерный массив целых чисел.Удалить те строки, которые сумма цифр которых я числом Фибоначчи...

Удалить из матрицы A все строки, сумма элементов которых четна, а из матрицы B – строки, сумма элементов которых нечетна(функции)
Удалить из матрицы А (7х5) все строки, сумма элементов которых четна, а из матрицы В (6х8) –...

Является ли сумма цифр числа двузначным числом
Пользователь вводит двузначное число. Определить: а) является ли сумма его цифр двузначным...

Является ли сумма цифр числа двузначным числом
Дано двузначное число. Определить: 1)Является ли суммы этих чисел двузначным числом. ...

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

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


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

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

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