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

Найти max, min и сумму компонент типизированного файла - C++

Восстановить пароль Регистрация
 
Kapioner
 Аватар для Kapioner
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 30
16.02.2011, 19:17     Найти max, min и сумму компонент типизированного файла #1
Компоненты типизированного файла – вещественные числа. Создать новый файл, в который записать общее количество компонент исходного файла, их максимальное и минимальное значение.

Вот прочитаю я эти элементы из файла, только не знаю до чего цикл запускать до скольки? как вообще определить количество этих элементов в файле?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2011, 19:17     Найти max, min и сумму компонент типизированного файла
Посмотрите здесь:

C++ Найти min и max матрицы
Поменять местами max и min элементы файла C++
C++ Найти max {min (a, b), min (c, d)}.
C++ Даны целые числа а, b, с. Вычислить в-сумму у = min (a, b + c) + max (ac, b)-min (a2, c)
Найти y=max(a,b,c,d)*min(a,b,c,d) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
16.02.2011, 19:21     Найти max, min и сумму компонент типизированного файла #2
Если на С++, то
C++
1
2
3
4
5
6
7
8
std::vector<double> vec;
std::ifstream fin("INPUT.TXT");
while(!fin.eof()){
  double tmp;
  fin >> tmp;
  vec.push_back(tmp);
}
//vec.size() - количество числе в файле
}{()$T
 Аватар для }{()$T
25 / 9 / 2
Регистрация: 22.01.2011
Сообщений: 27
16.02.2011, 19:23     Найти max, min и сумму компонент типизированного файла #3
C
1
2
3
4
5
6
7
 FILE *f;
 char arr[255];
 f=fopen("Baza.txt", "r"); 
 for(i=0; feof(f)==0; i++)             //считываем пока не конец файла
    {
         fscanf(f,"%d", &arr[i]);          //запихиваем в массив
    }
На Си
Kapioner
 Аватар для Kapioner
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 30
16.02.2011, 19:26  [ТС]     Найти max, min и сумму компонент типизированного файла #4
Цитата Сообщение от }{()$T Посмотреть сообщение
C
1
2
3
4
5
6
7
 FILE *f;
 char arr[255];
 f=fopen("Baza.txt", "r"); 
 for(i=0; feof(f)==0; i++)             //считываем пока не конец файла
    {
         fscanf(f,"%d", &arr[i]);          //запихиваем в массив
    }
На Си
Спасибо вам люди
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
16.02.2011, 19:28     Найти max, min и сумму компонент типизированного файла #5
Цитата Сообщение от }{()$T Посмотреть сообщение
C
1
char arr[255];
А если в файле чисел больше чем 255 ?
Kapioner
 Аватар для Kapioner
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 30
16.02.2011, 20:09  [ТС]     Найти max, min и сумму компонент типизированного файла #6
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
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE *f;
    int arr[255],i,max,min,s;
    max=0;
    f=fopen("Baza.txt", "r"); 
    for(i=0; feof(f)==0; i++)           
    {
        fscanf(f,"%d", &arr[i]);          
        printf ("%d",arr[i]);
    }
    min=arr[1];
    for (i=0;i<8;i++)
    {
        if (arr[i]>max)
        max=arr[i];
    }
    printf ("\n%d",max);
    for (i=0;i<8;i++)
    {
        if (arr[i]<min)
        min=arr[i];
    }
    printf ("\n%d",min);
    fclose(f);
    system ("pause");
    return 0;
}

Вот примерный код находит максимальное и минимально...а как найти количество этих элементов массиве, чтобы в циклах была переменная а не предустмотренное число)?

Добавлено через 15 минут
int n = sizeof(arr) / sizeof(arr[0]);
этим я хотел найти количество элементов, а мы сразу задали что 255, а что если будет больше чем 255(как спрашивали раньше)
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
16.02.2011, 20:23     Найти max, min и сумму компонент типизированного файла #7
Kapioner, Можно зделать так, первым проходом в цыкле по файлу определить, количество этих елементов, потом уже создать масив с определенным рание размером и вторым проходом считать елементы в масив.
}{()$T
 Аватар для }{()$T
25 / 9 / 2
Регистрация: 22.01.2011
Сообщений: 27
16.02.2011, 20:37     Найти max, min и сумму компонент типизированного файла #8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
main()
{
 int i=0;
 FILE *f;
 FILE *f2;
 int max=0, min=0;
 char arr[BUFSIZ]={0};
 f=fopen("Baza.txt", "r");
 f2=fopen("Rez.txt", "w+");
 for(i=0; feof(f)==0; i++)
        {
         fscanf(f,"%d", &arr[i]);
         if(arr[i]>max)
            max=arr[i];
         if(arr[i]<min)
            min=arr[i];
         }
         fprintf(f2,"Максимальный элемент %d\n Минимальный элемент %d\n Количество эл. масива %d ",max,min,i);
 
 system("PAUSE");
}
Вроде так)
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
16.02.2011, 20:40     Найти max, min и сумму компонент типизированного файла #9
Или так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
 
int main(){
  FILE *fin;
  fin = fopen("INPUT.TXT", "r");
  int *arr = (int *)malloc( sizeof(int) );
  int j = 0, i = 0;
  while(!feof(fin)){
    arr = (int *)realloc(arr, sizeof(int) * ++j);
    fscanf(fin, "%d", &arr[i++]);
  }
  for(i = 0; i < j; ++i)
    printf("%d ", arr[i]);
  return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от }{()$T Посмотреть сообщение
char arr[BUFSIZ]={0};
А если чисел в файле больше чем BUFSIZ(512 если не ошибаюсь) ?
}{()$T
 Аватар для }{()$T
25 / 9 / 2
Регистрация: 22.01.2011
Сообщений: 27
16.02.2011, 20:43     Найти max, min и сумму компонент типизированного файла #10
Цитата Сообщение от asics Посмотреть сообщение
А если чисел в файле больше чем BUFSIZ(512 если не ошибаюсь) ?
победил, не знаю
Kapioner
 Аватар для Kapioner
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 30
16.02.2011, 23:45  [ТС]     Найти max, min и сумму компонент типизированного файла #11
Что делать? у меня на все эти программы выводит ошибку сегментации?(Мб у меня чтото с компилятором?
}{()$T
 Аватар для }{()$T
25 / 9 / 2
Регистрация: 22.01.2011
Сообщений: 27
16.02.2011, 23:52     Найти max, min и сумму компонент типизированного файла #12
Код ошибки?
Kapioner
 Аватар для Kapioner
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 30
16.02.2011, 23:57  [ТС]     Найти max, min и сумму компонент типизированного файла #13
Я Dev-C++ использую, программа не выполняется, просто чёрный экран выводит и просит отправить отчёт, когда делаю отладку он говорит что ваша программа вызвала нарушение доступа(ошибку сегментации) и выделяет строку в библиотеке stdio
{ return __F->_flag & _IOEOF; }
}{()$T
 Аватар для }{()$T
25 / 9 / 2
Регистрация: 22.01.2011
Сообщений: 27
17.02.2011, 00:03     Найти max, min и сумму компонент типизированного файла #14
Странно, у меня Dev без проблем компилирует О_о

Добавлено через 1 минуту
Кстати, в директории с программой файлик Baza.txt с набором данных есть надеюсь?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2011, 02:24     Найти max, min и сумму компонент типизированного файла
Еще ссылки по теме:

C++ Файл: Из текстового файла найти max и min элемент и записать в другой текстовой файл, не используя массив
C++ Считывание из файла, MAX и MIN элементы
Найти сумму max элементов столбцов, и номер строки, в которой находится элемент матрицы с min значением C++

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

Или воспользуйтесь поиском по форуму:
Kapioner
 Аватар для Kapioner
1 / 1 / 0
Регистрация: 16.02.2011
Сообщений: 30
17.02.2011, 02:24  [ТС]     Найти max, min и сумму компонент типизированного файла #15
да есть))
#include <stdio.h>
main()
{
int i=0;
FILE *f;
FILE *f2;
int max=0, min=0;
char arr[BUFSIZ]={0};
f=fopen("Baza.txt", "r");
f2=fopen("Rez.txt", "w+");
for(i=0; feof(f)==0; i++)
{
fscanf(f,"%d", &arr[i]);
if(arr[i]>max)
max=arr[i];
if(arr[i]<min)
min=arr[i];
}
fprintf(f2,"Максимальный элемент %d\n Минимальный элемент %d\n Количество эл. масива %d ",max,min,i);
system("PAUSE");
}
Минимум будет правильно искать только при наличии отрицательных элементов в базе, иначе минимальным всегда будет ноль

Добавлено через 5 минут
Ура) добил)) спасибо всем за помощь без вас бы не справился)
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
#include <stdio.h>
main()
{
 int i=0;
 FILE *f;
 FILE *f2;
 int j,max=0, min;
 char arr[BUFSIZ]={0};
 f=fopen("Baza.txt", "r");
 f2=fopen("Rez.txt", "w+");
 for(i=0; feof(f)==0; i++)
        {
         fscanf(f,"%d", &arr[i]);
      
         }
        min=arr[1];
        for (j=0; j!=i;j++)
         {
             
                if(arr[j]>max)
            max=arr[j];
         if(arr[j]<min)
            min=arr[j];
             }
         fprintf(f2,"Максимальный элемент %d\n Минимальный элемент %d\n Количество эл. масива %d ",max,min,i);
 
}
Yandex
Объявления
17.02.2011, 02:24     Найти max, min и сумму компонент типизированного файла
Ответ Создать тему
Опции темы

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