С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
stels009
15 / 15 / 0
Регистрация: 05.04.2011
Сообщений: 403
#1

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

27.12.2011, 23:32. Просмотров 323. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2011, 23:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос считать из файла квадратный массив и найти в главной диагонале элемент 0 (C++):

Вывести строку матрицы, в которой элемент, стоящий на главной диагонале, максимальный среди элементов главной диагонали. - C++
Дано квадратную матрицу порядка N. Вывести строку матрицы, в которой элемент, стоящий на главной диагонале, максимальный среди элементов...

Квадратный массив - поменяйте в нем местами элементы главной и побочной диагоналей - C++
Дан квадратный массив. Поменяйте в нем местами элементы главной и побочной диагоналей.

Дан квадратный массив. Поменяйте в нем местами элементы главной и побочной диагоналей. - C++
Дан квадратный массив. Поменяйте в нем местами элементы главной и побочной диагоналей.

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

Массив: Найти наибольший элемент главной диагонали и определить его индексы - C++
Дан двумерный массив размером n*n, заполненный случайными числами. Найти наибольший элемент главной диагонали и определить его индексы....

Одномерный массив. Считать из файла, найти количество элементов, удовлетворяющих условию - C++
Одномерный массив Х(15) считать из файла *.txt (файл создать самим). Найти: Количество элементов, удовлетворяющих условию -0,5&lt;sin(xi)≤0,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2011, 23:32
Привет! Вот еще темы с ответами:

Двумерный массив. Найти минимальный элемент в, среди элементов, лежащих выше главной диагонали - C++
найдите минимальный элемент в двумерном массивный, размером n x n, среди элементов, лежащих выше главной диагонали Очень выручите....

Программа, которая вводит c клавиатуры двумерный квадратный массив целых чисел, заменяет все отрицательные элементы главной диагонали на сумму всех эл - C++
Задание Создать программу, которая вводит c клавиатуры двумерный квадратный массив целых чисел, заменяет все отрицательные элементы...

Дан массив вещественных чисел.Каждый элемент больше 10 заменить на его квадратный корень. - C++
Помогите новичку с недельным опытом=) Дан массив вещественных чисел.Каждый элемент больше 10 заменить на его квадратный корень.Спасибо! на...

Одномерный массив Х(15) считать из файла *.txt (файл создать самим). Найти: Максимальный из отрицательных элементов и поменять его местами с после - C++
#include &lt;iostream.h&gt; #include &lt;fstream.h&gt; void read_matr(double X) { ifstream f(&quot;matr.txt&quot;); for(int i=0; i&lt;15; i++){ f&gt;&gt;X; } ...


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

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

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