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

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

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

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

25.11.2013, 06:41. Просмотров 227. Ответов 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++):

Задача для курсовой: определить значение z=max(a, 2b)*max(2a-b,b), где max(x, y)-максимальные из чисел х и у - C++
Определить значение z=max(a, 2b)*max(2a-b,b), где max(x, y)-максимальные из чисел х и у. Задачу решить 2мя способами: 1) Не используя...

Определить значение Z=max(a,2b)*max(2a-b,b), где max(x,y)-максимальное из чисел x,y - C++
Помогите решить задачу: Определить значение Z=max(a,2b)*max(2a-b,b), где max(x,y)-максимальное из чисел x,y. Задачу решить двумя...

Нахождение в файле количество чисел и запись ответа в этот же файл - C++
Здравствуйте. Помогите пожалуйста, мне необходимо найти количество чисел в файле и записать в этот же файл с новой строчки ответ, но у меня...

Реализация простейшего класса для сложения двух чисел: найти и исправить ошибки в коде - C++
Всем привет. Только-только начал изучать классы, решил написать свою программу с классом для сложения двух чисел. С ошибками компиляции...

Найти ошибки в коде и исправить эти ошибки (Наследование) - C++
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

Найти ошибки в коде и исправить эти ошибки - C++ - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
caiman
11 / 11 / 1
Регистрация: 17.11.2013
Сообщений: 39
25.11.2013, 07:17 #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
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.11.2013, 07:20 #3
Цитата Сообщение от Bloodshed Посмотреть сообщение
while(fread(&x,sizeof(int),1,f))
Читаете в x, при чём здесь тогда a (max = a)?
Bloodshed
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 18
25.11.2013, 14:58  [ТС] #4
Нашла ошибку. Спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2013, 14:58
Привет! Вот еще темы с ответами:

Найти ошибки в коде и исправить эти ошибки - C++
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

Нахождение min и max и их произведения - C++
В с++ ничерта не понимаю, учил только бейсик. А тут надо задачу решить на экзамене. Задача легкая, но курить мануалы некогда, зачет в среду...

Нахождение min и max методом сканирования - C++
Помогите с програмкой. Написал, а она мне выдает invalid floating point operation. Кидает на строчку, где не должно быть ошибки. Может...

Работа с функциями. Нахождение min и max - C++
Описать функцию Minmax(A,B), записывающую в переменную A минимальное из значений A и B, а в переменную B — максимальное из этих значений (A...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.11.2013, 14:58
Ответ Создать тему
Опции темы

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