Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

сортировка массива стуктур посредством указателей - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дано целое число N (> 0) и символ C. Вывести строку длины N, кото-рая состоит из символов C http://www.cyberforum.ru/cpp-beginners/thread1054825.html
ребят писал в MC visual, а в dev++ не компилируется, помогите плиз #include <cstdlib> #include <iostream> #include <clocale> using namespace std; int main(int argc, char *argv) { int n;...
C++ Найти в каждом массиве среднее арифметическое простых элементов Из массива Х(N) все положительные элементы записать в массив Y(k). Найти в каждом массиве среднее арифметическое простых элементов. В программе написать функции: формирования массива Y, определения... http://www.cyberforum.ru/cpp-beginners/thread1054823.html
C++ Код С++.Исправить ошибку
#include "stdafx.h" #include <iostream> #include <string> #include <conio.h> using namespace std; class strana { public:
C++ Элементы массива A разместить в обратном порядке в массиве B
подскажите как это организовать
C++ Описать структуру с именем NOTE http://www.cyberforum.ru/cpp-beginners/thread1054804.html
Помогите пожалуйста решить!!! Описать структуру с именем NOTE, содержащую следующие поля: • фамилия, имя; • номер телефона; • дата рождения (массив из трех чисел). Написать программу,...
C++ Вызов меню из меню Добрый день, начал писать простую программку что бы попрактиковаться. В программе даётся 3 пункта меню, нужно что бы при нажатии на любой пункт меню, открывалось его под меню. Т.е при нажатии на... подробнее

Показать сообщение отдельно
GrimSpirit
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 6

сортировка массива стуктур посредством указателей - C++

24.12.2013, 16:03. Просмотров 491. Ответов 9
Метки (Все метки)

Доброго времени суток.
Есть у меня 1 задачка:
/*Дана целочисленная матрица А = {aij}, где 1<=i<=n; 1<=j<=m;
Выбрать строки матрицы, не содержащие нулевых элементов, и отсортировать выбранные строки
пытаюсь её решить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<iostream>
#include<fstream>
 
using namespace std;
const int N=10;
 
struct arr
{
    bool good; int a[N]; int max;
};
 
int main()
{
    int n,m,i,j,count=0;    //размерности; count для подсчета строк с нулями, если count == m, то выведем сообщение.
    ifstream fin("data.txt");
    if(fin.fail()) 
        cout<<"cant open data file"<<endl;
    fin>>n>>m;      //читаем размер матрицы
    
    arr *matr = new arr[N];
    for(i=0;i<n;i++)
        {matr[i].good=true;//по умолчанию присвоим всем bool-элементам true
        matr[i].max=-(1<<32);}//присвоим всем элементам поля max начальное значение
 
        for(i=0;i<n;i++)    //заполняем массив
            for(j=0;j<m;j++)
            {fin>>matr[i].a[j];
                if(matr[i].a[j]==0) count++; matr[i].good=false;//если в строке есть 0, то good=0, 
                
            }                                           //чтобы пропустить эту строку при сортировке
            fin.close();
    for(i=0;i<n;i++)    //выводим изначальный массив на экран
    {
        for(j=0;j<m;j++)
    cout<<matr[i].a[j]<<" ";
    cout<<endl;
        }
if(count==n)cout<<"All str have 0"<<endl;
system("pause");
return 0;
}
на этом вдохновение иссякло =( .
в полях max будут значения максимальных элементов в каждой строке.
Поле bool отображает, учавствует ли эта строка в сортировке
У меня 2 вопроса:
1)как объявить массив указателей и привязать их к моему массиву структур?
2)сортировка через указатели с проверкой matr[i].good==true.

Добавлено через 15 минут
поправка. после закрытия файла идёт
C++
1
2
3
4
5
6
7
8
9
if(count==n)cout<<"All str have 0"<<endl;
    else
if((n-count)==1)cout<<"Only 1 string without 0"<<endl;
    for(i=0;i<n;i++)    //выводим изначальный массив на экран
        {
            for(j=0;j<m;j++)
        cout<<matr[i].a[j]<<" ";
        cout<<endl;
        }
Добавлено через 18 минут
возможно, есть более простой алгоритм. если да, то какой?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru