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

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

Войти
Регистрация
Восстановить пароль
 
frwlnte
Сообщений: n/a
#1

Неправильная проверка условия в if - C++

15.06.2014, 21:42. Просмотров 154. Ответов 0
Метки нет (Все метки)

Дана задача:
Считать из файла, либо ввести вручную, матрицу вещественных чисел 4 на 5 с 4-мя цифрами после десятичной точки, вывести её на экран, записать в файл. Далее многократно выполнить поиск максимумов и минимумов в указанном столбце, записать их во второй файл. Наконец, считать второй файл и найти наибольший максимум и наименьший минимум, записать их во второй файл.

Проблема заключается в том, что если при первом вводе вместо "с" ввести какой-либо другой символ, программа никак на это не отреагирует. При вводе комбинации клавиш показывает первую строчку массива, состоящую из нулей, после чего консоль закрывается.
Кстати, если иду через считывание из файла, то сталкиваюсь с чем-то похожим: консоль показывает "b_max= " и закрывается.
Самое парадоксальное кроется в том, что когда я её только написал, она работала правильно.

Текст моей программы:
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
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <conio.h>
#include <iomanip>
using namespace std;
int const a = 4;
int const b = 5;
int const h = 60;
int const k = 1;
void search(double A[a][b]);
void rtl(double B[h][k]);
int main() {
    double A[a][b];
    char c;
    
    cout << "c - from file, any key - manually  ";
    cin >> c;
    
    if(c=='c') {
                  fstream f1("C:\\1.txt");
                  for(int i=0; i<a; i++) {
                          for(int j=0; j<b; j++) {
                                  f1 >> A[i][j]; } }
                  f1.close();}
    else {
            for(int i=0; i<a; i++) {
             for(int j=0; j<b; j++) {
                     cin >> A[i][j]; }
                  cout << endl; }
                  cout << endl << endl;}
                  
    for(int i=0; i<a; i++) {
    for(int j=0; j<b; j++) {
    cout << "A["<< i <<"]["<< j <<"]= " << fixed << setprecision(4) << A[i][j] << " "; } 
    cout << endl; }
         
     ofstream f2("2.txt", ios::app);
     for(int i=0; i < a; i++) { for(int j=0; j<b; j++) {
     f2 << A[i][j] << "  "; } f2 << endl; }
     f2.close(); 
         
    search (A);
         
    system("pause");
    return 0;
}     
void search(double A[a][b]) {
     int numb;
     double max, min, B[h][k];
     char g;
     START:
     cout << "enter number of column (from 0 to 4)  ";
     cin >> numb; 
     cout << endl;
     if(numb >= 0 && numb <=4) {
           max = min = A[0][numb];
           for(int i=0; i<a; i++) {
                            if(max < A[i][numb]) max = A[i][numb]; 
                            else if(min > A[i][numb]) min = A[i][numb];}
                            cout << "max= "<<  fixed << setprecision(4) << max<< endl;
                            cout << "min= "<<  fixed << setprecision(4) << min << endl;
                            ofstream f3("3.txt", ios::app);
                            f3 << "max= "<<  fixed << setprecision(4) << max<<" " << "min=  "<<  fixed << setprecision(4) << min << endl;
                            f3.close();
           }
     else goto START; 
     
     cout << "g - repeat, any key - continue ";
     cin >> g;
     if(g=='g') goto START;
     
     rtl(B);
}
void rtl(double B[h][k]) {
     double  b_max, s_min;
     fstream f4("3.txt");
     for (int i=0; i<h; i++) {
         for(int j=0; j<k; j++) { f4 >> B[i][j];}}
         f4.close();
         b_max = s_min = B[0][0];
      for (int i=0; i<h; i++) {
         for(int j=0; j<k; j++) { 
                 if(b_max < B[i][j]) { b_max = B[i][j];}
                 else if(s_min > B[i][j]) { s_min = B[i][j];} }}
      cout << endl << "b_max= "<< b_max <<  endl;
      cout <<  "s_min= "<< s_min;          
      ofstream f5("3.txt", ios::app);
      f5 << "b_max= "<<  fixed << setprecision(4) << b_max<< endl << "s_min=  " << fixed << setprecision(4) << s_min << endl;
      f5.close();        
           }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2014, 21:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неправильная проверка условия в if (C++):

Неправильная проверка - C++
Помогите, пожалуйста. Написал код, но для первого примера работает, а другого уже нет. Неправильно устанавливает flag2. #include...

Проверка условия - C++
Народ подскажите пожалуйста, как мне выполнить проверку в if? void country(TEda * Start){ TEda * wp; wp=Start; ...

Проверка условия без if - C++
Нужно решить задачу:Написать программу, в результате выполнения которой булевская переменная t получает значение TRUE, если выполняется...

Проверка условия в цикле for - C++
Подскажите, пожалуйста, сколько раз вычисляется значение выражения n - 1 в цикле for. Это происходит только один раз в данном случае (без...

Не работает проверка условия - C++
Добрый вечер! Я в самом начале пути программирования на C++, и возникла следующая проблема с данным фрагментом кода: int main() { ...

Проверка условия прогрессии - C++
Помогите новичку с кодом #include &lt;iostream&gt; using namespace std; int main () { int n,c; cin&gt;&gt;n; int a; for(int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2014, 21:42
Привет! Вот еще темы с ответами:

Проверка условия существования треугольника - C++
нужно написать программу Даны 3 числа, определить могут ли эти числа являться сторонами треугольника

Проверка условия окончания цикла for - C++
Здраствуйте. Проблема заключается в следующем. Есть следующий цикл: for( int i=2; !((n%i||d%i)&amp;&amp;!(n%i&amp;&amp;d%i))==0 ; i++){ ...

В каком случае проверка условия выполняется быстрее? - C++
В каком случае проверка условия выполняется быстрее? while(1); или while(true); Ведь в одном из этих случаев должно происходить...

Проблема с кодом программы - не работает проверка условия - C++
Здравствуйте, у меня вот проблема. Фрагмент кода их программы. Как вы поняли, при обпределенном весе должно выводиться конкретное...


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

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

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