Матрица И Строки

Тема в разделе "C/C++/C#", создана пользователем -, 7 апр 2012.

Статус темы:
Закрыта.
  1. Гость

    Она меняет в порядке возрастания в строчке числа,а соответствующие столбцы никак не хочет,помогите...

    вот условие задачи:\


    Упорядочить элементы к-ой строки матрицы m*n по возрастанию.Если элементы одинаковы,то упорядочить элементы к+1-ой строки также по возрастанию.
     
  2. Гость

    вот прога

    #include "stdafx.h"
    #include <stdio.h>
    #include <tchar.h>
    #include <conio.h>
    #include <iostream>
    #include <windows.h>
    #include <iomanip>
    using namespace std;



    int _tmain(int argc, _TCHAR* argv[])
    {
    setlocale(LC_ALL,"RUS");
    int st , str ,s=0 ,k=0 , n ,f=0,f1=0;
    system("cls");
    //Вводим число строк и столбцов матрицы
    cout << "Введите число строк : " << endl;
    cout << ">>>>>> ";
    cin >> st;
    cout << "Введите число столбцов : " << endl;
    cout << ">>>>>> ";
    cin >> str;
    //Выделяем под них память
    double **m;
    m=new double*[st];
    for(int i = 0; i < st; i++)
    {
    m = new double[str];
    }
    //Заполняем матрицу
    for(int i=0;i<st;i++)
    {
    for(int j=0;j<str;j++)
    {
    cout << "Введите " << j+1 << " элемент " << i+1 << " сроки : "<<endl;
    cin >> m[j];
    }
    }
    //Выводим матрицу
    cout << "Ваша матрица : \n\n";
    for (int i = 0; i < st; i++)
    {
    for (int j=0; j < str; j++)
    {
    cout.width(7);
    cout <<m[j];
    }
    cout << endl;
    }
    //Сортируем строку матрицы
    cout<<"Какую строку нужно отсортировать : "<<endl;
    cin>>n;
    n=n-1;
    //Проверяем равенство элементов , если они все равны , то уведичиваем показатель номера строки , и снова проверяем , и так до тех пор , пока элементы будут не равны
    bool cntn = true;// Продолжить цикл
    while(cntn)
    {
    for(int j=0;j<str - 1;j++)
    if(m[n][j]!=m[n][j+1])
    cntn = false; // В столбце есть не равные элементы. Дальнейшая проверка не нужна.

    if(cntn)
    {
    n=n+1;
    cout<<"Сортируется строка " << n + 1<<endl;
    }

    if (n == st)
    cntn = false; //Проверена вся матрица.
    }

    //Алгоритм сортировки элементов строки матрицы
    if (n != st)//
    {
    while(k!=str)
    {
    for(int j=0;j<str - 1;j++)
    {
    if(m[n][j]>m[n][j+1])
    {
    double temp = m[n][j];
    m[n][j]=m[n][j+1];
    m[n][j+1] = temp;
    }
    }
    k++;
    }
    }

    //Вывод отсортированной матрицы на экран
    cout << "Отсортированная матрица : "<<endl;
    for (int i = 0; i < st; i++)
    {
    for (int j=0; j < str; j++)
    {
    cout.width(7);
    cout <<m[j];
    }
    cout << endl;
    }
    system("PAUSE");
    return 0;
    }
     
Загрузка...
Похожие Темы - Матрица Строки
  1. fatpunk
    Ответов:
    0
    Просмотров:
    1.137
  2. нини
    Ответов:
    3
    Просмотров:
    1.744
  3. phobiaxx
    Ответов:
    1
    Просмотров:
    1.277
  4. vladis222
    Ответов:
    1
    Просмотров:
    1.285
  5. LudmilaUt
    Ответов:
    0
    Просмотров:
    1.383
Статус темы:
Закрыта.

Поделиться этой страницей