Форум программистов, компьютерный форум 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; char *s= "\0";
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, содержащую следующие поля: • фамилия, имя; • номер телефона; • дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: • ввод с клавиатуры данных в массив, состоящий из десяти структур типа NOTE; записи должны быть упорядочены по датам рождения; • вывод на дисплей информации об абоненте,...
C++ Вызов меню из меню Добрый день, начал писать простую программку что бы попрактиковаться. В программе даётся 3 пункта меню, нужно что бы при нажатии на любой пункт меню, открывалось его под меню. Т.е при нажатии на пункт меню, вызывалось меню типа (Под меню 1, под меню 2, под меню 3). Так вот, как реализовать это под меню, и как его прописать в case ? Вот сам код начала программы #include <iostream> using... подробнее

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

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

24.12.2013, 16:03. Просмотров 484. Ответов 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 минут
возможно, есть более простой алгоритм. если да, то какой?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru