Форум программистов Контакты:
О проблемах с регистрацией, почтой и по другим вопросам пишите сюда - post@programmersforum.ru
По необходимости будем регистрировать вручную. И проверяйте папку спам!
Главная  |  Правила форума  |  Исходники Delphi  |  Основы Delphi  |  Блог программистов  |  Рассылка  |  Повторная активизация e-mail  | 

Вернуться   Форум программистов > C++ программирование > Общие вопросы C/C++

Ответ
 
Опции темы
Старый 23.03.2011, 20:07   #1
Phelps
Новичок
 
Регистрация: 19.03.2011
Сообщений: 2
Репутация: 10
Восклицание Матрица, вставка столбца после столбца с max элементом

Здравствуйте, помогите, пожалуйста!!! Срочно надо, вставить столбец из 0 после столбца с максимальным элементом, вставить перед ним могу и только перед одним, а что делать если их несколько?
PHP код:
#include<stdio.h>
#include<malloc.h>
#include<math.h>
 
void main()
{
int **a,**b;
int m,n,i,j,j1=0,j2,max=-1000j_max;
puts("enter m,n");
scanf("%d%d",&m,&n);
a=(int**)malloc(m*sizeof(int*));
        for(
i=0;i<m;i++)
*(
a+i)=(int*)malloc(n*sizeof(int));
for(
i=0;i<m;i++)
        for(
j=0;j<n;j++)
        {
        
printf("vvedite a[%d][%d]=",i,j);
        
scanf("%d",&a[i][j]);
        }
 
for(
i=0;i<m;i++)
{
        for(
j=0;j<n;j++)
        {
        
printf("%4d",a[i][j]);
        }
printf("\n");
}
for(
i=0;i<m;i++)
        for(
j=0;j<n;j++)
                if(
a[i][j]>max)
                {
                
max=a[i][j];
                
j_max=j;
                }
printf("max=%d",  max);
puts(" vivod novoy matrici ");
b=(int**)malloc(m*sizeof(int*));
        for(
i=0;i<m;i++)
*(
b+i)=(int*)malloc((n+1)*sizeof(int));
 
for(
j=0;j<n;j++)
{
if(
j==j_max)
for (
j2=0;j2<1;j2++)
{
for(
i=0;i<m;i++)
 
b[i][j1]=0;
j1++;
}
 
for(
i=0;i<m;i++)
{
b[i][j1]=a[i][j];
}
j1++;
 
}
for(
i=0;i<m;i++)
{
        for(
j=0;j<n+1;j++)
        {
        
printf("%4d",b[i][j]);
        }
        
printf("\n");
}

Phelps вне форума   Ответить с цитированием
Старый 23.03.2011, 22:19   #2
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
Репутация: 14
По умолчанию

Зачем же так сложно?
Возьми двумерный массив.
Скажем matric[50][50].
Введи матрицу
Код:

for(int i = 1;i <= n: i++)
for(int j = 1;i <= n: j++)
cin>>matric[50][50];

Найди строчку где находится самое большое число.
Код:

max = matric[1][1];
for(i = 1;i <= n: i++)
for( j = 1;i <= n: j++)
{
        if(max > matric[i][j])
          {
              max = matric[i][j];                                                //часть 1
              t = i;     
          }
}

Теперь создай новую строчку,и в ней запиши ту строчку, где находится max.
Код:

for(i = n - t + 1; i >= 1; i--)
for(j = 1; j <= n; j++)
{
     matric[i + 1][j] = matric[i][j];                         
}

Потом напечатай новую матрицу.
Код:

for(i = 1;i <= n + 1: i++)
{
for( j = 1;i <= n: j++)
{
      cout<<matric[i][j]<<" ";
}
cout<<endl;
}

А если их несколько, то проверяешь условие if(max == matric[i][j])
если да сохраняешь i в t[1], где t[50]; s++;, где изночально s = 1;
Ты должен отсортировать t[50] по возврастанию.
Потом добавляешь еще один цикл s - 1 раз.
Первый раз в части 1 i = n - t[s] + 1; таким образом он добавит несколько строчек.А вообше лучше написать n = n + 1; в части 1, и таким образом заменить n - 1 на n.
Вот и все

Последний раз редактировалось Акоб; 23.03.2011 в 22:49.
Акоб вне форума   Ответить с цитированием
Старый 24.03.2011, 17:15   #3
Phelps
Новичок
 
Регистрация: 19.03.2011
Сообщений: 2
Репутация: 10
По умолчанию

спасибо, сделал по другому, но идею понял
Phelps вне форума   Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма из одного столбца с числами в зависимости от интервала дат из другого столбца Severny Microsoft Office Excel 10 14.03.2011 10:13
Вставка названия столбца Jack125 Microsoft Office Excel 3 18.10.2010 10:11
Удаление строк столбца совпадающих со строками другого столбца ShamanGood Microsoft Office Excel 23 18.09.2010 08:26
скалярное произведение строки с наибольшим элементом и столбца с наименьшим элементом katya36 Помощь студентам 15 20.12.2008 17:48
Вставка столбца в StringGrid artemavd Общие вопросы Delphi 8 29.07.2008 16:48




05:41.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.

Forex с Admiral Markets — это надежно


Работа на Forex с 2000 года. Очное и дистанционное обучение. Выгодные условия.
магазин горящих туров


более 1000 горящих предложений ежедневно
Бэбиблог - соц сеть для будущих мам


RusProfile.ru


Справочник российских юридических лиц и организаций.