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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2011, 21:38   #1
Miles
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 25
По умолчанию сортировка двумерного массива

задание: Упорядочить (переставить) строки матрицы по возрастанию сумм элементов строк.
мои код:
Цитата:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


int ar[50][50], s[50];
int i, j, k;
int m, n;
int temp;


int main() {

printf("input size of array MxN \n");
scanf("%d %d", &m, &n);

printf ("\n");

for(i=1; i<=m; i++) {
for(j=1; j<=n; j++)
ar[i][j]=rand()%10;
}
for(i=1; i<=m; i++) {
for(j=1; j<=n; j++)
printf(" %2d ", ar[i][j]);

printf ("\n");

}

for(i=1; i<=m; i++) {
for(j=1; j<=n; j++)
s[i]=s[i]+ar[i][j];

}
printf ("\n");

for(i=1; i<=m; i++)
printf(" %2d ", s[i]);

printf ("\n");
temp=0;
for(i=1; i<=m; i++){
if(i+1<=m) {
for(k=1; k<=m; k++){
if(s[k]<s[k+1]) {
temp=s[k];
s[k]=s[k+1];
s[k+1]=temp;
for(j=1; j<=n; j++) {
temp=ar[i][j];
ar[i][j]=ar[i+1][j];
ar[i+1][j]=temp;
}
}
}
}
}

printf ("\n");

for( i=1; i <=m; i++ ){
for( j=1; j<=n; j++)
printf("% 2d ", ar[i][j]);

printf("\n");
}
printf("\n");
for(i=1; i<=m; i++)
printf(" %2d ", s[i]);



getch();
return 0;
}
проблема:
не сортирует массив S по возрастанию и не сортирует матрицу(строки матрицы по возрастанию сумм элементов строк)
и вообще препод сказал что сюда куда то надо указатели засунуть но у меня уже чайник закипает)
подскажите плиз где тут ошибка(и)
Miles вне форума Ответить с цитированием
Старый 19.12.2011, 21:45   #2
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Код:
for(i=1; i<=m; i++) { 
 for(j=1; j<=n; j++)
Индексы массивов на C вроде с 0 начинаються 0..Size-1; Size-размер массива
viron вне форума Ответить с цитированием
Старый 19.12.2011, 21:50   #3
Miles
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 25
По умолчанию

сори не то с копировал)
Цитата:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


int ar[50][50], s[50];
int i, j, k;
int m, n;
int temp;


int main() {

printf("input size of array MxN \n");
scanf("%d %d", &m, &n);

printf ("\n");

for(i=0; i<m; i++) {
for(j=0; j<n; j++)
ar[i][j]=rand()%10;
}
for(i=0; i<m; i++) {
for(j=0; j<n; j++)
printf(" %2d ", ar[i][j]);

printf ("\n");

}

for(i=0; i<m; i++) {
for(j=0; j<n; j++)
s[i]=s[i]+ar[i][j];

}
printf ("\n");

for(i=0; i<m; i++)
printf(" %2d ", s[i]);

printf ("\n");
temp=0;
for(i=0; i<m; i++){
if(i+1<m) {
for(k=0; k<m; k++){
if(s[k]>s[k+1]) {
temp=s[k];
s[k]=s[k+1];
s[k+1]=temp;
for(j=0; j<n; j++) {
temp=ar[i][j];
ar[i][j]=ar[i+1][j];
ar[i+1][j]=temp;

}
}
}
}
}

printf ("\n");

for( i=0; i <m; i++ ){
for( j=0; j<n; j++)
printf("% 2d ", ar[i][j]);

printf("\n");
}
printf("\n");
for(i=0; i<m; i++)
printf(" %2d ", s[i]);



getch();
return 0;
}
Miles вне форума Ответить с цитированием
Старый 19.12.2011, 22:14   #4
Miles
Пользователь
 
Регистрация: 25.10.2011
Сообщений: 25
По умолчанию

Цитата:
for(k=0; k<m-1; k++){
if(s[k]>s[k+1])
о терь S сортируется
осталось только строки матрицы
Miles вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка двумерного массива Makarov Помощь студентам 8 29.10.2011 11:55
Сортировка двумерного массива shadowfiend C++ Builder 0 21.04.2011 19:29
Сортировка двумерного массива AlexXXX12389 Помощь студентам 0 17.10.2010 10:32
Сортировка двумерного массива(С) Александр Елис Помощь студентам 1 31.10.2009 13:25