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

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

Войти
Регистрация
Восстановить пароль
 
Bloodshed
 Аватар для Bloodshed
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 18
#1

Нахождение max в файле чисел. Ошибки в коде - C++

25.11.2013, 06:41. Просмотров 207. Ответов 3
Метки нет (Все метки)

Здравствуйте! Мне нужно найти максимальный элемент в файле целых чисел. Вот мой код. Но он приравнивает все элементы к 0. Не пойму в чём ошибка.
#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
int main ()
{FILE *f;
int x,max=0,a;
bool first_number = true;
char str[10];
cout<<"vvedite imja faila"<<endl;
cin>>str;
cout<<endl;
f=fopen(str,"rb");
if (f)
{
cout << "Opened!\n";
while(fread(&x,sizeof(int),1,f))
{

cout << "a = "<< a << endl;
if (first_number)
{
max = a;
first_number = false;
}
else
if (a > max) max = a;
}
cout << endl << "max = " << max << endl;
}
else cout << "Not opened!";


return 0;
}

Добавлено через 45 секунд
вот этот код создаёт файл чисел

#include <iostream>
#include <fstream>
using namespace std;
int main ()
{FILE *f;
int x,i;
f=fopen("chisla","wb");
for(i=0;i<10;i++)
{cin>>x;
fwrite(&x,sizeof(int),1,f);
}
fclose(f);
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 06:41     Нахождение max в файле чисел. Ошибки в коде
Посмотрите здесь:

C++ Массив,нахождение отрезка max длины.
C++ Нахождение min и max методом сканирования
C++ Нахождение min и max и их произведения
C++ Реализация простейшего класса для сложения двух чисел: найти и исправить ошибки в коде
C++ Нахождение max и min функции одной переменной
C++ Ошибка в коде(нахождение делителей)
C++ Нахождение max и min в матрице . и поменять их местами
C++ Ошибка в коде при поиске max и min
Найти разность 2-х чисел (max и min) из последовательности чисел, введенное с клавиатуры (n = 5) C++
Работа с функциями. Нахождение min и max C++
C++ Нахождение Max и Min в строке двумерного массива
нахождение ошибок в коде, наследование C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
caiman
 Аватар для caiman
11 / 11 / 1
Регистрация: 17.11.2013
Сообщений: 39
25.11.2013, 07:17     Нахождение max в файле чисел. Ошибки в коде #2
Для генерации чисел (следуя твоей логике):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
int main() {
    FILE *file = fopen("task.in","w");
 
    for ( int i = 0; i < 10; i++ ) {
        int x;
 
        scanf("%d", &x);
        fprintf(file, "%d ", i);
    }
    fclose(file);
    
    return 0; 
}
Для нахождения максимума:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
int main() {
    FILE *file = fopen("task.in", "r");
    int max, tmp;
 
    fscanf(file, "%d", &max);
 
    for ( ; fscanf(file, "%d", &tmp) == 1 ; ) {
        if ( tmp > max ) {
            max = tmp;
        }
    }
    fclose(file);
 
    cout << "max: " << max << endl;
 
    return 0;
}
alsav22
5410 / 4806 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.11.2013, 07:20     Нахождение max в файле чисел. Ошибки в коде #3
Цитата Сообщение от Bloodshed Посмотреть сообщение
while(fread(&x,sizeof(int),1,f))
Читаете в x, при чём здесь тогда a (max = a)?
Bloodshed
 Аватар для Bloodshed
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 18
25.11.2013, 14:58  [ТС]     Нахождение max в файле чисел. Ошибки в коде #4
Нашла ошибку. Спасибо
Yandex
Объявления
25.11.2013, 14:58     Нахождение max в файле чисел. Ошибки в коде
Ответ Создать тему
Опции темы

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