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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2011, 13:09   #1
Донат
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 22
По умолчанию Сортировка матрицы

Привет! Помогите пожалуйста разобраться с двумя задачами:

1.Упорядочить строки целочисленной прямоугольной матрицы по убыванию суммы
модулей их элементов.
2.Найти номер первого из столбцов, не содержащих ни одного
отрицательного элемента.
Донат вне форума Ответить с цитированием
Старый 30.10.2011, 13:12   #2
Донат
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 22
По умолчанию

Вот моя программа
Необходимо заполнить 5 и 6 пункт меню...
Не понимаю как это сделать

#include "stdafx.h"
#include <clocale>
#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include <Windows.h>
#include <iostream>

#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>


int _tmain(int argc, _TCHAR* argv[])
{
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

setlocale(LC_ALL, "Russian");
setlocale(LC_ALL, "rus");

srand(time(NULL));
int menu = 0;
int *a = NULL;
int height = 0;
int width = 0;
int i = 0;
int j = 0;
int x = 0;
int y = 0;
int tmp = 0;

a = new int[height*width];

do
{
printf(" Menu \n");
printf("1.Ввести размер массива\n");
printf("2.Ввести элементы массива (произвольным образом)\n");
printf("3.Ввести элементы массива (с клавиатуры)\n");
printf("4.Вывод массива на экран\n");
printf("5.Упорядочить строки по убыванию суммы модулей их элементов\n");
printf("6.\n");
printf("0.Выход\n");

scanf("%d", &menu);

switch(menu)
{
case 1:
do
{
printf("\n");
printf("Введите кол-во строк матрицы(не отриц знач.): ");
scanf("%d", &height);
printf("\nВведите кол-во столбцов матрицы(не отриц знач.): ");
scanf("%d", &width);

if (height < 0 || width < 0)
{
printf("___________________________ __________________\n");
printf("\aerror! Строки или столбцы введены не верно...\n");
printf("___________________________ __________________\n");
}
}while (height < 0 || width < 0);

printf("\n");

break;

case 2:
for (i = 0; i < height; i++)
{
for (j = 0; j < width; j++)
{

a[i*width + j] = rand() %10;
}
}
printf("\n");
printf("Введены элементы матрицы произвольным образом");
printf("\n");
printf("\n");

break;
printf("\n");

case 3:
printf("\n");
printf("Введите %d элементов массива\n", height*width);

for (i = 0; i < height; i++)
{
for (j = 0; j < width; j++)
{
printf("Введите элемент №%d: ", i*width + j + 1);
scanf("%d", &a[i*width + j]);
}
}

printf("\n");
printf("Введены элементы массива");
printf("\n");
printf("\n");
break;

case 4:
printf("\n");
for (i = 0; i < height; i++)
{
for (j = 0; j < width; j++)
{
printf("%d " , a[i*width + j]);
}
printf("\n");
}

printf("\n");
break;

case 5:
printf("\n");
printf("Упорядоченный вид:\n");
for (i = 0; i < height; i++)
{
int sum = 0;
for (j = 0; j < width; j++)
{
sum = sum + a[i*width + j];
}
printf("%d", sum);
printf("\n");
}



break;

case 6:


break;

case 0:
break;

default:
{
printf("\n");
printf("\n");
printf("\n");
printf("-------------------\n");
printf("Неверный пункт меню\n");
printf("-------------------\n");
printf("\n");
printf("\n");
printf("\n");
}
}
}while (menu != 0);

return 0;
}

Последний раз редактировалось Донат; 30.10.2011 в 13:15.
Донат вне форума Ответить с цитированием
Старый 30.10.2011, 13:20   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
2.Найти номер первого из столбцов, не содержащих ни одного
отрицательного элемента.
Код:
int foo(){
 for(i=0;i<width;i++){
  for(j=0;j<height;j++)   if(a[j*width + i]<0) break;
  if(j==height) return i;
 }
 return -1;
};
Код:
case 6:printf("%d\n",foo());break;
Идея понятна?

P.S. А почему не двумерный массив?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.10.2011, 13:34   #4
Донат
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 22
По умолчанию

Stilet, большое человеческое спасибо!
Донат вне форума Ответить с цитированием
Старый 30.10.2011, 13:54   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Всегда пожалуйста.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка матрицы zhenya.ya Помощь студентам 2 03.09.2010 19:32
Сортировка матрицы m9yt Общие вопросы C/C++ 3 22.06.2010 21:46
Сортировка матрицы VD1988 Помощь студентам 1 01.12.2009 09:23
Сортировка матрицы GOODMAN Microsoft Office Excel 3 09.07.2009 23:31