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

статическая память и матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить программу для обработки символьных данных http://www.cyberforum.ru/cpp-beginners/thread33789.html
Нужно ввести с клавиатуры предложение и сделать перестановку букв так чтобы буквы из строки отсортировались в столбик
C++ приведеник к старшему типу есть 2 программки // C++ Function template #include <iostream> using namespace std; template <typename T> T maximum(T& a, T& b) http://www.cyberforum.ru/cpp-beginners/thread33779.html
C++ Работа с файлами
помогите плиз.. Задача: Написать функцию get_int(filename,k) целого типа, возвращающую k-ый элемент файла целых цисел с именем filename (элементы нумеруются от 0). Если файл не существует или не содержит k-го элемента, то функция возвращает 0. С помощью этой функции вывести пять элементов данного файла с указанными номерами. написать на языке С.
C++ двухмерные классы-контейнеры
Подскажите, пожалуйста, существуют ли двухмерные классы-контейнеры. Если нет, то как создать вектор векторов.
C++ вопросы по теории http://www.cyberforum.ru/cpp-beginners/thread33739.html
помогите ответить на вопросы по теории!! Тема - СТРУКТУРЫ 1) способы обьявления струкутрных переменных. Динамическое выделение памяти для массива структур 2) Как обратиться к структуре по указателю?? 3) Передача структуры в функцию
C++ Описать функцию TextSize (Name) целого типа, возвращающую число строк в текстовом файле Описать функцию TextSize(Name) целого типа, возвращающую число строк в текстовом файле с именем Name. Если файл не существует, то функция возвращает -1. С помощью этой функции определить размер трёх файлов с данными именами. подробнее

Показать сообщение отдельно
Olk@
 Аватар для Olk@
0 / 0 / 0
Регистрация: 03.05.2009
Сообщений: 9

статическая память и матрицы - C++

12.05.2009, 18:36. Просмотров 1386. Ответов 2
Метки (Все метки)

сижу задачку делаю! с динамической памятью все нормально получилось! а со статической ошибки выдает! может кто поможет!!!


задача такая: целочисленная квадратная матрица представляется размером и последовательностью элементов по строкам. характеристикой строки матрицы назовем сумму ее простых элементов. отсортировать строки каждой из некоторого количества матриц файла по убыванию их характеристик. в новый файл поместить матрицы до и после сортировки.

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
const int c=20;
 
struct matr //
{
    int n;
    int a[c][c];
};
 
//чтение матрицы из файла 
bool readmtf(ifstream &f,matr &mt)
{matr mtr;
   if (f >>mtr.n)
   {
     int mt[c][c];
     for (int i=0;i<mtr.n;i++)
     {   for (int j=0;j<mtr.n;j++)
            f >>mt[i][j];
     }
     return true;
    }
    else return false;
}
 
//выдача матрицы и характеристик строк матрицы в файл
void writemtf(ofstream &f,matr mtr,int kp[])
{
    
    f <<mtr.n<<endl;
    int mt[c][c];
    for (int i=0;i<mtr.n;i++)
    {
        f<<kp[i]<<"   ";
        for (int j=0;j<mtr.n;j++)
            f <<mt[i][j]<<' ';
        f <<endl;
    }
}
//проверка числа к на простоту
bool prov(int k)
{
    bool fl=(k>1)&&((k==2)||(k>2)&&(k%2>0));
    int gr=int(sqrt(double(k))),d=3;
    while (fl &&(d<=gr))
    {
        fl=k%d>0;d+=2;
    }
    return fl;
}
 
int main()
{
    ifstream fin( "mtdan.txt");
    if (!fin)
    {
        cout <<"error\n";return 1;
    }
    ofstream fout("resmatr.txt");
    matr a;
    int i,j,s;
    while(readmtf(fin,a))
    {
// формирование массива характеристик строк матрицы
    int kp[c];
        for (i=0;i<a.n;i++)
      {
        s=0;
        for (j=0;j<a.n;j++)
        s+=int (prov(a.a[i][j]));
        kp[i]=s;
       }
       fout <<"do sortirovki:\n";
       writemtf(fout,a,kp[c]);
//сортировка строк матрицы по убыванию их характеристик
       for (i=a.n-1;i>0;i--)
        for (j=1;j<=i;j++)
         if (kp[j-1]<kp[j])
         {
            swap(kp[j-1],kp[j]);
            swap(a.a[j-1],a.a[j]);
         }
         fout <<"posle  sortirovki:\n";
       writemtf(fout,a,kp[c]);
    
    }
    fin.close();
    fout.close();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru