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

Вывод случайного массива, вылетает программа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Кодировка чтения файла http://www.cyberforum.ru/cpp-beginners/thread1170552.html
Здравствуйте, форумчане! Возникла небольшая прроблемка.. Читаю данные из файла: #include <iostream> #include <vector> #include <fstream>
C++ Ошибка pow:DOMAIN error в написании функции Бесселя первого рода нулевого порядка Доброго времени суток)) Необходимо записать функцию Бесселя первого рода нулевого порядка. Записала, вроде как, по формуле.. с помощью знакопеременного ряда, но при компиляции пишет: pow: DOMAIN error , может кто-нибудь встречался с похожим, или может я, что упустила в коде?? Заранее спасибо)) int Fkt(int b) { int f = 1; for (int i = 1; i <= b; i++) f *= i; return(f) ; } double... http://www.cyberforum.ru/cpp-beginners/thread1170543.html
C++ Вывести "неа" в случае, если ничего не ввёл в Edit1
string a; a=Edit1->Text.t_str(); if(Edit1->Text.t_str()) { ShowMessage(" неа "); return; } помогите как сделать в случае если ничего не ввёл в Edit1 т.е. пустая строка, вывести "неа"
Глобальный вектор. Почему на выходе этот массив пуст? C++
юзаю либу вектор. почему на выходе этот массив пуст? std::vector<int> qw;//global int main() { int i=1; qw.push_back(i); getch(); return 0; }
C++ Исправить код тестирования http://www.cyberforum.ru/cpp-beginners/thread1170521.html
Помогите пожалуйста!!! Программа должна выставлять оценку по следующему правилу: отлично — за правильные ответы на все вопросы, хорошо — если испытуемый правильно ответил не мене чем на 80% вопросов, удов- летворительно — если правильных ответов более 60%, и неудов- летворительно — если правильных ответов меньше 60%. Не работает(((( #include <iostream>
C++ Перевод целочисленного выражения в double Собственно ситуация следующая: class A{ private: int a,b,c; public: //---код----// operator double() { return (a*240+b*12+c)/240; подробнее

Показать сообщение отдельно
HockeyKnyaz
0 / 0 / 0
Регистрация: 09.05.2014
Сообщений: 3
09.05.2014, 01:59     Вывод случайного массива, вылетает программа
Программа генерирует случайный двумерный массив, выводит его в файл, потом читает и выводит на экран из этого файла. При нажатии клавиши 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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include <iostream>              //библиотека ввода/вывода
#include <windows.h>                //установка команд операционной системы
#include <fstream>               //потоки ввода/вывода в файлы
#include <stdlib.h>              //стандартная библиотека выделения памяти/контроль процесса выполнения программы
#include <time.h>
 
#define MROW 3                   //n=3
#define MCOL 7                   //m=7
 
using namespace std;
string Rus(string text)          //установка вывода русского языка в строке
{CharToOem((LPCTSTR)text.c_str(), (LPSTR)text.c_str()); return text;}
 
void random(ofstream& fu, double matrix[MROW][MCOL]){
    fu.open("massiv.txt");
    srand(time(0));
            for(int i=1; i<MROW+1; i++)
                for(int j=1; j<MCOL+1; j++)
                    matrix[i][j]=-10+rand()%50;
    fu<<"matrix[i][j]";
    fu<<endl;
    fu.close();
}
 
void input_from_file(ifstream& fi, double matrix[MROW][MCOL])   //создание потока для чтения данных с файла
    {
        fi.open("massiv.txt");          //путь к файлу с массивом
    for(int i=0; i<MROW; i++)
        for(int j=0; j<MCOL; j++)
            fi>>matrix[i][j];
    fi.close();                       //закрытие потока
}
 
void keyboard_input(double matrix[MROW][MCOL])                    //ввод данных с клавиатуры
{
    for(int i=0; i<MROW; i++)
        for(int j=0; j<MCOL; j++)
            cin>>matrix[i][j];
}
 
void show_matrix(double matrix[MROW][MCOL]) {
    for(int i=0; i<MROW; i++) {
        for(int j=0; j<MCOL; j++)
            cout<<matrix[i][j]<<" ";             //вывод матрицы на экран
        cout<<endl;
    }
}
 
int count_pos_el(double matrix[MROW][MCOL])        //подсчёт положительных элементов матрицы
{
    int pos_el = 0;
    for(int i=0; i<MROW; i++)
        for(int j=0; j<MCOL; j++)
            if(matrix[i][j]>0)
                pos_el++;
    return pos_el;
}
 
int count_neg_el(double matrix[MROW][MCOL])         //подсчёт отрицательных элементов матрицы
{
    int neg_el = 0;
    for(int i=0; i<MROW; i++)
        for(int j=0; j<MCOL; j++)
            if(matrix[i][j]<0)
                neg_el++;
    return neg_el;
}
 
int count_zero_el(double matrix[MROW][MCOL])          //подсчёт нулевых элементов матрицы
{
    int zero_el = 0;
    for(int i=0; i<MROW; i++)
        for(int j=0; j<MCOL; j++)
            if(matrix[i][j]==0)
                zero_el++;
    return zero_el;
}
 
void output_matrix_from_file(ofstream& fo, double matrix[MROW][MCOL])     //создание потока для вывода данных в файл
{
    fo.open("123ololo.txt");           //создание файла
    for(int i=0; i<MROW; i++) {
        for(int j=0; j<MCOL; j++)
            fo<<matrix[i][j]<<"  ";
        fo<<endl;
    }
    fo.close();                           //закрытие потока
}
 
void show_results(int neg, int pos, int zero)            //создание потока вывода данных на экран
{
    cout<<Rus("Отрицательные элементы: ")<<neg<<endl;
    cout<<Rus("Положительные элементы: ")<<pos<<endl;
    cout<<Rus("Нулевые элементы: ")<<zero<<endl;
}
void output_counts_from_file(ofstream& fo, int neg, int pos, int zero)  //создание потока вывода данных в файл
{
    fo.open("test.txt");    //создание файла
    fo<<neg<<endl;
    fo<<pos<<endl;
    fo<<zero<<endl;
    fo.close();             //закрытие потока
}
 
int menu()
{
    int select;                                            //создание меню программы
    cout<<endl<<endl<<Rus("Пожалуйста, выберите: ")<<endl;
    cout<<Rus("1. Ввод массива с клавиатуры")<<endl;
    cout<<Rus("2. Ввод массива из файла")<<endl;
    cout<<Rus("3. Показать количество отрицательных, положительных и нулевых элементов")<<endl;
    cout<<Rus("4. Вывести матрицу и результаты пункта 3 в файлы")<<endl;
    cout<<Rus("5. ВЫХОД")<<endl<<endl;
    cout<<Rus("Ваш выбор: ");
    cin>>select;
    return select;
}
 
int main()
{
    ofstream fu;
    ifstream fi;
    ofstream fo;
    double matrix[MROW][MCOL];
    int pos, neg, zero;
    while(true) {
        switch(menu()) {
        case 1:                                //результат нажатия клавишы "1"
            keyboard_input(matrix);
            system("cls");
            show_matrix(matrix);
            break;
        case 2:                                //результат нажатия клавишы "2"
            system("cls");
            random(fu, matrix);
            input_from_file(fi, matrix);
            show_matrix(matrix);
            break;
        case 3:                                 //результат нажатия клавишы "3"
            system("cls");
            pos = count_pos_el(matrix);
            neg = count_neg_el(matrix);
            zero = count_zero_el(matrix);
            show_results(neg, pos, zero);
            break;
        case 4:                                  //результат нажатия клавишы "4"
            system("cls");
            pos = count_pos_el(matrix);
            neg = count_neg_el(matrix);
            zero = count_zero_el(matrix);
            output_matrix_from_file(fo, matrix);
            output_counts_from_file(fo, neg, pos, zero);
            break;
        case 5:                                  //результат нажатия клавишы "5"
            return 0;
        default:
            system("cls");                        //очистка экрана консоли
            cout<<Rus("Неккоректный номер меню")<<endl;;
            break;
        }
    }
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru