Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2011, 20:07   #1
Phelps
Новичок
Джуниор
 
Регистрация: 19.03.2011
Сообщений: 2
Восклицание Матрица, вставка столбца после столбца с 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
По умолчанию

Зачем же так сложно?
Возьми двумерный массив.
Скажем 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
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц



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