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

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

Восстановить пароль Регистрация
 
Bloodshed
 Аватар для Bloodshed
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 18
25.11.2013, 06:41     Нахождение max в файле чисел. Ошибки в коде #1
Здравствуйте! Мне нужно найти максимальный элемент в файле целых чисел. Вот мой код. Но он приравнивает все элементы к 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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
5282 / 4801 / 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 в файле чисел. Ошибки в коде
Ответ Создать тему
Опции темы

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