Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 2

Вставить после столбцов с максимальными элементами столбцы из нулей

19.02.2018, 00:50. Показов 5000. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны матрицы Q(12*9) и C(7*8), заполненные случайным образом. Вставить после столбцов с максимальными элементами столбцы из нулей.
Помогите найти ошибку в коде, задание необходимо выполнить с помощью функций. Ответ выдаёт неккоректный, но максимальные элементы в матрицах и их индексы находит верно.Очень надеюсь на вашу помощь. Вот сам код:

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
67
68
69
70
71
72
73
74
75
76
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define N 12
#define M 9
#define K 7
#define I 8
void in_mas(int n, int *mas)
{
    int i;
    srand(time(NULL));
    for (i=0;i<n;i++)
    
    *(mas+i)=-10+rand()%21;
}
void out_mas(int n,int m, int *mas)
{
    int i,j;
    for (i=0;i<n;i++)
        {
        for (j=0;j<m;j++)
        printf("%5d",*(mas+i*m+j));
       printf("\n");
        }
}
int max_el(int n, int m, int *mas)
{
    int max=*mas,i_max,j_max,i,j;
    for (i=0;i<n;i++)
         for (j=0;j<m;j++)
         if(max<*(mas+i*m+j))
     {
         max=*(mas+i*m+j);
         i_max=i;
         j_max=j;
     }
     printf("max=%d\ni_max=%d\nj_max=%d\n",max,i_max,j_max);
return i_max;
return j_max;
}
void out_new_mas(int n,int m, int *mas)
{
    int i,j,i_max,j_max; 
           for ( i=0;i<n;i++)
                { 
                    for ( j=m;j>j_max;j--) 
                    *(mas+i*n+j)=*(mas+i*n+(j-1));
                   *(mas+i*n+(j_max+1))=0; 
                }
                    m++;
    printf("\n");
    for ( i=0;i<n;i++)
        {
            for ( j=0;j<m;j++) 
            printf("%5d",*(mas+i*n+j));
            printf("\n");
        }
  
    }
    
int main()
{
int Q[N][M],C[K][I];
in_mas (N*M,&Q[0][0]);
in_mas (K*I,&C[0][0]);
out_mas (N,M,&Q[0][0]);
printf("\n");
out_mas (K,I,&C[0][0]);
max_el(N,M,&Q[0][0]);
printf("\n");
max_el(K,I,&C[0][0]);
out_new_mas(N,M,&Q[0][0]);
printf("\n");
out_new_mas(K,I,&C[0][0]);
return 0;
}
Добавлено через 10 минут
Немножко редактировал код

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define N 12
#define M 9
#define K 7
#define I 8
void in_mas(int n, int *mas)
{
    int i;
    srand(time(NULL));
    for (i=0;i<n;i++)
    
    *(mas+i)=-10+rand()%21;
}
void out_mas(int n,int m, int *mas)
{
    int i,j;
    for (i=0;i<n;i++)
        {
        for (j=0;j<m;j++)
        printf("%5d",*(mas+i*m+j));
       printf("\n");
        }
}
int max_el(int n, int m, int *mas)
{
    int max=*mas,i_max,j_max,i,j;
    for (i=0;i<n;i++)
         for (j=0;j<m;j++)
         if(max<*(mas+i*m+j))
     {
         max=*(mas+i*m+j);
         i_max=i;
         j_max=j;
     }
     printf("max=%d\ni_max=%d\nj_max=%d\n",max,i_max,j_max);
return i_max;
return j_max;
}
void out_new_mas(int n,int m, int *mas)
{
    int i,j,i_max,j_max;
    
         
           for ( i=0;i<n;i++)
                { 
                    for ( j=m;j>j_max;j--) 
                    *(mas+i*n+j)=*(mas+i*n+(j-1));
                   *(mas+i*n+(j_max+1))=0; 
                }
                    m++;
        
    printf("\n");
    for ( i=0;i<n;i++)
        {
            for ( j=0;j<m;j++) 
            printf("%5d",*(mas+i*n+j));
            printf("\n");
        }
  
    }
    
int main()
{
int Q[N][M],C[K][I];
in_mas (N*M,&Q[0][0]);
out_mas (N,M,&Q[0][0]);
printf("\n");
max_el(N,M,&Q[0][0]);
printf("\n");
out_new_mas(N,M,&Q[0][0]);
printf("\n");
in_mas (K*I,&C[0][0]);
out_mas (K,I,&C[0][0]);
printf("\n");
max_el(K,I,&C[0][0]);
printf("\n");
out_new_mas(K,I,&C[0][0]);
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.02.2018, 00:50
Ответы с готовыми решениями:

Вставить после столбцов,содержащий максимальный элемент массива,столбец из нулей.
Вставить после столбцов,содержащий максимальный элемент массива,столбец из нулей. ПОМОГИ ТЕ ПЛИЗ

Вставить после столбцов матрицы с максимальными элементами столбец из нулей
дан двумерный массив размером nxm, заполненный случайным образом. Вставить после столбцов с максимальными элементами столбец из нулей. 1...

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

1
║XLR8║
 Аватар для outoftime
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,360
Записей в блоге: 5
19.02.2018, 01:53
Николай Сивов, Рекомендации по созданию тем подсветка синтаксиса кнопка "С++" 2й ряд слева

Добавлено через 1 минуту
Цитата Сообщение от Николай Сивов Посмотреть сообщение
#define N 12
#define M 9
#define K 7
#define I 8
Вместо этого используйте константы

C++
1
2
3
4
const unsigned N = 12,
    M = 9,
    K = 7,
    I = 8;
Добавлено через 3 минуты
Цитата Сообщение от Николай Сивов Посмотреть сообщение
void in_mas(int n, int *mas)
{
int i;
srand(time(NULL));
Идея хорошая, но реализация хромает, числа будут разные от запуска программы к запуску, но сама функция врядли вызывается с промежутком больше секунды, из-за чего 2 массива будут сгенерированы с одинаковой последовательности случайных.

srand(time(NULL)) делается один раз в int main(){}

Добавлено через 2 минуты
Цитата Сообщение от Николай Сивов Посмотреть сообщение
int i,j;
for (i=0;i<n;i++)
Это С++ объявлять можно в цикле
C++
1
for (int i = 0; i < n; ++i)
Добавлено через 2 минуты
Цитата Сообщение от Николай Сивов Посмотреть сообщение
max_el(N,M,&Q[0][0]);
Вызвать вызвал, а сохранить результат?

Добавлено через 33 минуты
Николай Сивов,
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
#include <cstdio>
#include <cstdlib>
 
template <unsigned N, unsigned M>
void in_mas(int (&)[N][M]);
 
template <unsigned N, unsigned M>
void out_mas(int (&)[N][M]);
 
template <unsigned N, unsigned M>
void modify(int (&)[N][M]);
 
int main()
{
    const unsigned n = 12, m = 9;
    int a[n][m];
    in_mas(a);
    out_mas(a);
    modify(a);
    out_mas(a);
}
 
template <unsigned N, unsigned M>
void in_mas(int (&mas)[N][M])
{
    for (int i = 0; i < N; ++i)
        for (int j = 0; j < M; ++j)
            mas[i][j] = -10 + rand() % 21;
}
 
template <unsigned N, unsigned M>
void out_mas(int (&mas)[N][M])
{
    for (int i = 0; i < N; ++i)
    {
        for (int j = 0; j < M; ++j)
            printf("%5d", mas[i][j]);
        printf("\n");
    }
}
 
template <unsigned N>
unsigned max_pos(int (&a)[N])
{
    unsigned pos = 0;
    for (int i = 1; i < N; ++i)
        if (a[i] > a[pos])
            pos = i;
    return pos;
}
 
template <unsigned N, unsigned M>
void modify(int (&mas)[N][M])
{
    for (int i = 0; i < N; ++i)
        for (int j = max_pos(mas[i]) + 1; j < M; ++j)
            mas[i][j] = 0;
}
Тут использются шаблоны чтобы проще было обращаться к статическим массивам + они позволяют не передавать размеры массива в функцию, компилятор сам их выведет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2018, 01:53
Помогаю со студенческими работами здесь

дан двумерный массив размером 5x6, вставить после столбцов с максимальными элементами столбец с нулями
дан двумерный массив размером 5x6, заполненный случайным образом. вставить после столбцов с максимальными элементами столбец с нулями

Вставить перед столбцом с максимальными элементами столбец из нулей. Удалить столбец с номером k
С помощью датчика случайных чисел сформировать матрицу m x n. Вставить перед столбцом с максимальными элементами столбец из нулей. Удалить...

Вставить столбец из нулей после каждого из столбцов, содержащих максимальный элемент
Дан двумерный массив размером n*m, заполненный случайным образом. 2. Вставить после всех столбцов, содержащий максимальный элемент...

Дана действительная матрица. Определить номера столбцов с максимальными элементами
Помогите с решением задачи я просто не знаю что писать дальше,желательно написать в виде кода чтобы было понятно)) Задача: Дана...

Вставить после столбцов, первый элемент которых делится на 3 и не делится на 5, столбец из нулей
Помогите решить. Дан двумерный массив размером 5 * 6, заполненный случайным образом. Вставить после столбцов, первый элемент которых...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru