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

считать из файла квадратный массив и найти в главной диагонале элемент 0 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Очистка памяти при работе с функциями http://www.cyberforum.ru/cpp-beginners/thread419352.html
Имеется функция,она работает,даёт правильные результаты,но если объёмы обрабатываемой информации возрастают,то оперативная память заканчивается double* Function(T_GSM_element* a , double *F, int N)...
C++ Системы счисления (есть ошибка) Начал учить си. Захотел написать конвертер. В итоге такая проблемка: переменная k при создании массива работать должна как счетчик. При выводе массива остатков от деления в обратном порядке, k... http://www.cyberforum.ru/cpp-beginners/thread419340.html
бинарные деревья C++
В бинарном дереве поиска найти вершину, для которой количество вершин в левом поддереве отличается от количества вершин в правом поддереве на число, большее заданного. Добавлено через 17 часов 55...
задать прямые с помощью структур прямые задаются точкой и направляющим вектором. C++
Разработать алгоритм определяющий взаимное расположение двух прямых в пространстве. прямые задать с помощью структур. результат вывести на экран. помогите пожалуйста задать прямые с помощью структур...
C++ Определить порядковый номер числа, отличного от остальных http://www.cyberforum.ru/cpp-beginners/thread419329.html
Помогите пожалуйста Нашел задачи их попробовать сделать ,что не как помогите 1.Даны три числа,одно из которых отлично от двух других равных между собой.Определить порядковый номер числа,отличного...
C++ Программа переводящая из двоичной системы в восьмеричную Помогите пожалуйста.. Я почти написал программу, только не могу написать код для перевода дробной части числа.. Помогите пожалуйста.. #include "stdafx.h" #include <iostream> #include <string> using namespace std;... подробнее

Показать сообщение отдельно
stels009
15 / 15 / 0
Регистрация: 05.04.2011
Сообщений: 403

считать из файла квадратный массив и найти в главной диагонале элемент 0 - C++

27.12.2011, 23:32. Просмотров 315. Ответов 0
Метки (Все метки)

Вообщем надо сделать чтобы прога читала из файла квадратный массив и находила в главной диаганили элемент 0...
Вообщем то фактически все сделано но при попытка вывода массива на экран он вмето чисел выдет чтото не понятное...
Исходник я там подписал где возникает проблема...
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
93
94
95
96
97
98
/*Написать программу, которая считывает из файла матрицу A размерами n*n,
выводит ее на экран и находит индекс первого элемента,
равного нулю, на главной диагонали.*/
#include<iostream>  
#include<iomanip>
#include<math.h>
#include<conio.h>
#include<String.h>
#include<ctype.h>
#include <stdlib.h>
#include<windows.h>
#include <fstream> // Этот файл обеспечивает работу с файлами
using namespace std; // !!! Используем стандартное пространство имён
// функция перестановки значений двух величин
void swap(float& a, float& b)
{
    float tmp;
    tmp=a; a=b; b=tmp;
}
int main()
{   
    if(SetConsoleCP(1251)==0)
    {
        cerr<<"Fialed to set codepage!"<<endl;
    }
    if(SetConsoleOutputCP(1251)==0)
    {
        cerr<<"Failed to set OUTPUT page!"<<endl;
    }
    // Объявляем файлы:
    ifstream inf("test.txt");
    ofstream outf("sort.txt");
    int m=1, n=1;int sz = 0; // Количество строк и столбцов
    cout<<("Введите размер квадратной матрици ");
    cin>>sz;m=sz;n=sz;
    register int i,j; 
// счетчики (пример использования регистровых переменных)
    inf >> m >> n; 
    /* считываем из файла размеры матрицы, которые должны быть записаны в начале файла */
    float *vek, **mat; 
    /* Указатель на матрицу как на линейный массив и указатель на массив ука¬за-телей для обращения к элементам массива как к элементам матрицы. Элементы мас-сива объявлены как числа, которые могут иметь дробную часть */
    vek=new float[m*n]; // выделяем место под элементы матрицы 
    mat=new float*[m];
 // выделяем место под массив указателей на строки матрицы
    for (i=0; i<m; i++) // заполняем массив указателями
        mat[i]= &vek[i*n]; // деление на строки матрицы
    printf("Исходная матрица:\r\n");
    // чтение элементов из файла
    for (i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        {
            inf>>mat[i][j]; 
            // считываем элемент как слово и записываем в матрицу
            if (inf.eof()) 
            // если достигнут конец файла, а матрица еще не заполнена
            {
                printf("Не хватает данных\r\n");
                _getch();
                exit(0);
            }
/*Подозрение на эту строчку>>>>>*/printf("%10.2f",mat[i][j]); // вывод элемента на экран
        }
        printf("\r\n"); // перевод курсора в начало следующей строки
    }
//=====================================================================================================================
int diag = 1;i=1;j=1;int otv = 0;
for(diag <= sz;++diag;i=++j)
{
    if(mat[i][j] == 0)/*<<<В следствии не работет это условие*/
    {
        otv = diag;
    }
}
//=====================================================================================================================
    /*cout << "Отсортированная по столбцам: \n";
    for (i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
        {
            // запись элемента в файл:
            outf <<setiosflags(ios::showpoint)<< setprecision(2)<<setw(10)<<mat[i][j];
            // вывод на экран:
            cout <<setiosflags(ios::showpoint) << setprecision(2)<< setw(10)<<mat[i][j];
// каждый элемент записывается с двумя цифрами после точки в поле из 8 позиций
        }
        outf<<endl; 
// в конце строки матрицы выводим признак конца строки
        cout << endl;
    }*/
cout<<"Номен Строки нулевого элемента "<<otv;
cout<<"Номен Столбца нулевого элемента "<<otv;
    outf.close(); 
    delete []mat; 
    delete []vek; 
    _getch();
    return 0;
}
Как сделать чтобы в ячейках лежало конкретное число считанное из массива файла а не та бурда которая сча и желательно чтобы работало условие проверки если = 0;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru