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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Saddiel
7 / 7 / 0
Регистрация: 02.11.2012
Сообщений: 152
#1

Сформировать из считаных из файла чисел матрицу, содержащую 4 столбца - C++

19.05.2014, 15:49. Просмотров 293. Ответов 1
Метки нет (Все метки)

Привет всем, помогите исправить код для программы.
Задание.
В каждом из заданий исходный файл формировать программно. Количество элементов исходного файла неизвестно.
Методические рекомендации.
Целесообразно для создания бинарного файла создать отдельную программу. Числа могут вводиться либо пользователем, либо счетчиком случайных чисел. Количество чисел в файле задавать случайным образом, и оно должно быть неизвестно в основной программе, т.е. цикл выполняется при условии «пока не конец файла». Для проверки правильности работы программы на экран выводить и первоначальное содержимое файла, и результат.
Задача
В файле содержится некоторое количество чисел. Сформировать из них матрицу, содержащую 4 столбца. Недостающие элементы последней строки задать равными нулю. Вывести на экран матрицу в общепринятом виде, ее размерность и суммы элементов главной диагонали и побочной диагонали.
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
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
 
using namespace std;
 
int main()
{
    FILE *f; int q,i,j=0,n=1;
    int **a = new int *[q];
    for(i=0;i<q;i++) a[i] = new int [4];
    
    f=fopen("bait.bb","rb");
    
    i=0;
    setlocale(LC_ALL, "rus");
    printf("Вывод чисел в файле:\n");
    
    while(!feof(f))
    {if(j!=4){
    fread(&q,sizeof(int),1,f);
    a[i][j]=q;
    printf("%d   ",a[i][j]);
    j++;}
    else {j=0;i++;n++;}}
    
    for(j;j<4;j++)
    a[i][j]=0;
    
    cout << "\n\n\n\n";
    
    printf("Ввод матрицы\n");
    
    for(i=0;i<n;i++)
       {for(j=0;j<4;j++)
         {cout << a[i][j] << "  ";}
         cout << endl;}
         
    cout << "\n\n\n\n";
    
    printf("Должно быть:\n");
    fseek(f,0,SEEK_SET);
    j=0;
    while(!feof(f))
    {if(j<4)
    {fread(&q,sizeof(int),1,f);
    printf("%d  ",q);
    j++;}
    else
    {j=0;cout<<endl;}
    }
    
    cout << "\n\n\n\n";
    
    system("Pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2014, 15:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать из считаных из файла чисел матрицу, содержащую 4 столбца (C++):

Сформировать матрицу из случайных значений, добавить столбец после столбца, содержащего наибольший элемент - C++
1. Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать. 2. Добавить столбец после столбца,...

Сформировать матрицу n+1 на n+1, где n+1 столбцом является min каждой строки, а n+1 строкой — max каждого столбца - C++
Помогите пожалуйста :))) В С++ нужно сделать) Дана матрица n на n. Сформировать новую матрицу n+1 на n+1, где n+1 столбцом является min...

Сформировать матрицу целых чисел - C++
Сформировать матрицу целых чисел. Количество строк и столбцов ввести с клавиатуры. Написать функцию для вычисления суммы элементов,...

Сформировать матрицу целых чисел - C++
Сформировать матрицу целых чисел. Количество строк и столбцов ввести с клавиатуры. Написать функцию для вычисления суммы элементов, которые...

Сформировать матрицу на основе информации из заданного текстового файла - C++
Есть файл целых чисел. Первые 2 числа несут инфу о размерах матрици . Все остальные числа - елементы матрицы .Считать матрицу и вывести ее...

Используя генератор случайных чисел сформировать матрицу Н размером - C++
Используя генератор случайных чисел, cформировать матрицу Н размером 7х8 из вещественных чисел; Вывести матрицу на экран; Получить...

1
Sonance
6 / 6 / 3
Регистрация: 15.02.2013
Сообщений: 55
19.05.2014, 17:04 #2
Компилятора нет под рукой, но разве эта программа работает? На вот это точно должно фаталом ругаться.
Цитата Сообщение от Saddiel Посмотреть сообщение
int q,i,j=0,n=1; int **a = new int *[q];
Нельзя выделить неопределенный объем памяти. Нужно сначала посчитать сколько чисел в файле, и уже потом выделять память под этот массив.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2014, 17:04
Привет! Вот еще темы с ответами:

Сформировать матрицу с помощью генератора случайных чисел и организовать ее вывод - C++
Составить программу для подсчета произведения нечетных элементов двумерной матрицы В размерности m × n. Сформировать матрицу с помощью...

Считать из файла целочисленный массив C[N] и сформировать из него максимально возможную матрицу А [n x n] - C++
Считать из файла целочисленный массив C и сформировать из него максимально возможную матрицу А . Причем на главной диагонали должны...

Сформировать два текстовых файла из целых чисел. Записать в третий файл минимальный элемент первого файла и максимальный элемент второго файла - C++
Тема: работа с текстовыми файлами с использованием стандартных функций библиотеки stdio.h Нужно составить программу: Сформировать два...

Дано прямоугольную матрицу вещественных чисел. Найти максимальную среди сумм каждого столбца. - C++
Дано прямоугольную матрицу вещественных чисел. Найти максимальную среди сумм каждого столбца.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru