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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2012, 17:39   #1
dimi3ryi
 
Регистрация: 14.11.2012
Сообщений: 3
Печаль

В общем,написал программу,которая принимает введенную с клавы матрицу(двухмерный массив) и вычисляет первый столбец без отрицательных элементов. Также она должна сортировать строки матрицы по возрастанию кол-ва одинаковых элементов в них(к примеру сначала строка без повтор. элем,потом с 1 или 2 и т.п.).Вот с сортировкой и возникли траблы,помогите,пожалуйста, кто может,а то перепробовал тучу вариантов-везде какие-то ошибки(то вместо 1 строки нолики пишет,то сортирует только 1 и 2ю строку)
Код:
#include "stdafx.h"
#include<conio.h>
#include<string.h>
#include<math.h>
#define n 100
#define m 100
...
int sort(int array[n][m],int o,int r,int i,int j)
{
int k,g,l,t;
int arraysame[n];
	for(i=0,k=0;i<o,k<o;i++,k++) //начало сомнений :confused:
	{
			for(int j1=1,j=0,g=0;j<r,j1<r;j++,j1++)
			{
				if(array[i][j1]==array[i][j])
				{
					g++;
					arraysame[k]=g;
				}
			}
	}
	for(i=0,k=0,t=k+1;i<o,k<o,t<o; )
	{
		if(arraysame[k]<=arraysame[t])
			t++;
		if(arraysame[k]>arraysame[t])
		{
			for(j=0;j<r;j++)
			{
				l=array[k][j];
				array[k][j]=array[t][j];
				array[t][j]=l;
				t++;	//конец :(
			}
		}
	}
return array[o][r];
}
...
void main()
{
	int array[n][m];
	int i,j,o,r;
	int k,l,f=1;
	...
	sort(array,o,r,i,j);
	printf(" \n Array after sort : ");
	...
printf("\nEnter Esc for continue...");
getch();
}
Вот кстати ещё 1 вариант сортировки,тоже не рабочий(иногда 0 выдаёт)
...
Код:
for(i=0,k=0;i<o,k<o;i++,k++)
		{
			for(j=0;j<r;j++)
				{
					for(int j1=j;j1<r;j1++)
						{
							if(array[i][j1]==array[i][j])
							arraysame[k]++;
						}
				}
		}
	}
	{
		for(i=0,k=0;i<o,k<o;i++,k++)
			{
				if(arraysame[k]>arraysame[k+1])
					{
						for(j=0;j<r;j++)
						{
							l=array[i][j];
							array[i][j]=array[i+1][j];
							array[i+1][j]=l;
						}
					}
			}
	}
...
Ну или предложите свой способ сортировки двухмерного масива

Последний раз редактировалось dimi3ryi; 26.11.2012 в 16:56.
dimi3ryi вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка матрицы!!!! RazveD Паскаль, Turbo Pascal, PascalABC.NET 0 23.04.2012 18:06
Сортировка матрицы Eovin Помощь студентам 0 20.12.2009 15:36
Сортировка матрицы VD1988 Помощь студентам 1 01.12.2009 09:23
Сортировка матрицы counter Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 09.06.2009 00:00