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

Бинарные файлы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Процедура удаления из списка всех вхождений заданного элемента http://www.cyberforum.ru/cpp-beginners/thread977903.html
Написать программу, процедуру удаления из заданного списка, все вхождения элемента с заданным значением.
C++ арифметическое выражение преобразовать в постфиксную запись в выражение входят а) переменные б)целые числа в) знакип -/+* г ) скобки как это вообще реализовать , ? как вводить и куда вводить выражение? тема вроде про СТЕК. http://www.cyberforum.ru/cpp-beginners/thread977881.html
C++ Указатели
Не пойму почему tmp в итоге будет 88,а не 99,ведь он указывает на current а current указывает на pp=99,объясните пожалуйста почему так? int main() { int tt=88; int pp=99; int *head=&tt; int...
функциональный класс C++
Не могли бы вы привести пример функционального класса, для сортировки мультимножества, а именно по критерию, что нужно исключить из него все элементы, которые содержатся только один раз.
C++ Проверить, является ли матрица магическим квадратом http://www.cyberforum.ru/cpp-beginners/thread977852.html
Магический квадрат является расположение чисел в квадратной сетке, где числа в каждой строке и в каждом столбце, а числа в прямом и обратном главных диагоналях, сумма равна.Магический квадрат имеет...
C++ Нужно отсортировать одномерный масив Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а затем - все остальные. Максимальный елемент нашол! подробнее

Показать сообщение отдельно
Кирилл_МОАиС
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 2

Бинарные файлы - C++

15.10.2013, 11:24. Просмотров 213. Ответов 0
Метки (Все метки)

В файле содержатся числа, сформировать из них матрицу 4х4, взяв первые 8 чисел сначала файла, а остальные - с конца файла. Посчитать произведение элементов на главной диагонали матрицы.

Вот код, но суть в том что сортировать массив нельзя, сказали прочитать файл с конца. Видимо нужно использовать fseek, но не знаю куда воткнуть) помогите пожалуйста)

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
#include <iostream.h>
#include <math.h>
#include <fstream.h>
#include <cstdio>
#include <windows.h>
#include <conio.h>
#include <iomanip.h>
#include <string>
 
int main ()
{
    SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
    int array [16];
    int a = 0;   
    int control_array [4][4]; 
    srand ( (unsigned) time (NULL));
    
    // заполняем массив array числами
 
    cout << "Исходный одномерный массив:" << endl << endl;
    for ( int i = 0; i < 16; i++)
        { 
            array [i] = rand () % 10;
            cout << array [i] << ' ';               // вывод на экран
        }
 
    cout << endl<<endl;
 
//    Сортируем массив
//
//    int between;
//    int value = 8;
//    for ( int i = 15; i >= 12; i--)
//      { 
//          between = array [i];
//          array [i] = array [value];
//              array [value] = between;
//              value++;
//      }
//      
//      cout<<endl;
 
    // открываем файл для записи
    
    ofstream outstrm ("binary.bin", std::ios::binary);
    if ( outstrm.is_open())
        { 
            for ( int i = 0; i < 16; i++)                                       // выводим массив в файл поэлементно
                outstrm.write ((char *) & array [i], sizeof(int)); 
            outstrm.close();
        }
    
    //Читаем поэлементно и организовываем матрицу 4х4
 
    cout << "Полученный двухмерный массив:" << endl << endl;        
    {                                                                                             
        ifstream instrm ("binary.bin", std::ios::binary);                             
            for( int i = 0; i < 4; ++i)                                                  //Вот тут нужно как то организовать всё
                {
                    for ( int j = 0; (j < 4) && (instrm.read ((char *) & a, sizeof(int))); ++j)
                        {
                            control_array [i][j] = a;
                            cout <<setw(3)<< control_array [i][j];
                        }
                    cout << endl;
                }
     }
    
     /*Подсчитываем произведение элементов под главной диагональю...*/
    int multiplicate = 1;
    for (int i = 0; i < 4; ++i)
        {
                    multiplicate *= control_array [i][i];               
        }
  cout << endl << "Произведение элементов на главной диагонали равно: " << multiplicate;
 
    getch ();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru