HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 14.05.2009, 00:46
Mosvit
Познающий
Регистрация: 05.03.2007
Сообщений: 99
С нами: 10097277

Репутация: 44
По умолчанию

Вообщем сделал я свою программу , только осталась одна загвостка,
она правильно сортирует строки только тогда когда строго сумма первой строки массива<2-ой строки<суммы 3-ей строки

А если наприер сумма второй строки самая большая, то уже считает с ошибкой.

Сделал по-принципу: присвоил temp1,temp2,temp3 сумму каждой строки, потом сделал проврку с циклом,
типа если temp1<temp2, то поменять строки местами.


Вот код:
Сортировать должен сверху самая большая сумма, ниже меньше
Код:
#include <stdio.h> 
#define M 3 
#define N 3 
#define MAX 100 // наше ограничение 
void main(void) 
{ 
int mas[M][N]; // Объявление двумерного массива 
int temp[M];
int i,j,temp1,temp2,temp3;
// Ввод массива 
for(i=0;i<M;i++) // цикл по строкам 
{ 
for(j=0;j<N;j++) // цикл по элементам строки 
{ 
// Ввод значения элемента массива 
printf(" A[%d][%d]=", i, j); 
scanf("%d",&mas[i][j]); 
} 
}
printf("\n");
getch();
//---------------------------------Вывод массива
printf("Ishodniy massiv:");
printf("\n");
for(i=0;i<M;i++) // цикл по строкам 
{ 
for(j=0;j<N;j++) // цикл по элементам строки 
{               
printf("%4d", mas[i][j]);

}
printf("\n");

}
printf("\n");
// ---------- Обработка и вывод
printf("Otsortirovaniy massiv:\n");
for(i=0; i<=M-2; i++) 
{
     temp1=0; temp2=0;
     for(j=0; j<=N; j++) 
     {
          temp1=temp1+mas[i][j];
          temp2=temp2+mas[i+1][j];
          temp3=temp3+mas[i+2][j];
     
     
     if (temp2<temp3) 
     {
                      
     for(j=0; j<=N-1; j++) 
     {
          temp[i]=mas[i+1][j];
          mas[i+1][j]=mas[i+2][j];
          mas[i+2][j]=temp[i];
          
          }
     }
     if (temp2<temp1) 
     {
                      
     for(j=0; j<=N-1; j++) 
     {
          temp[i]=mas[i+1][j];
          mas[i+1][j]=mas[i][j];
          mas[i][j]=temp[i];
          
          }
     }
     
     if (temp1<temp2) 
     {
                      
     for(j=0; j<=N-1; j++) 
     {
          temp[i]=mas[i][j];
          mas[i][j]=mas[i+1][j];
          mas[i+1][j]=temp[i];
          
          }
    
     }
    
    if (temp2<temp3) 
     {
                      
     for(j=0; j<=N-1; j++) 
     {
          temp[i]=mas[i+1][j];
          mas[i+1][j]=mas[i+2][j];
          mas[i+2][j]=temp[i];
          
          }
    
     }
    
       
    
     for (i=0;i<M;i++) 
          {
              for (j=0;j<N;j++)
              {
          printf("%4d",mas[i][j]);
          
          }
          printf("\n");
          getch();
          }
     }
     
          
} 


/*for (i=0;i<M;i++) 
          {
              for (j=0;j<N;j++)
              {
          printf("%4d",mas[i][j]);
          
          }
          printf("\n");
          getch();
          }*/


/*// ------- Вывод суммы элементов каждой строки массива
printf("Summa elemenov strok massiva:\n");
for(i=0;i<M;i++) 
printf("%4d", mas[i][0]);
getch();*/
}
 
Ответить с цитированием
 



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT ™ © 2001- Antichat Kft.