Определить минимальное значение в txt-файле, содержащем целые числа - C (СИ)
Формулировка задачи:
Имеется текстовый файл, содержащий целые числа. Определить сколько раз в нем повторяется минимальное значение. Результат дописать в исходный файл.
Помогите,что-то не могу сообразить с min значениями...Как их будет правильнее сосчитать?!+100500 к карме тому,кто поможет.Голову ломаю уже около часа.Понимаю,что ерунда получается,но этот вариант самый жизнеспособный.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
FILE* f1;
int main(void)
{
if ((f1 = fopen("999.txt", "r+")) == NULL)
{
perror("error1\n");
return 1;
}
int i = 0;
int m = 0;
int min = 0;
char str[100]="";
while ((str[i] = getc(f1)) != EOF)
{
if (str[i] < str[i + 1])
{
min = str[i];
}
// for (i = 0; str[i] != 0; i++)
// {
// if (str[i] = min)
// {
// m++;
// }
//
// }
//}
}
fprintf(f1,"%d\n",min);
fclose(f1);
return 0;
}Решение задачи: «Определить минимальное значение в txt-файле, содержащем целые числа»
textual
Листинг программы
#include <stdio.h>
int main(void){
FILE *file;
int a=0,min,c=0;
file = fopen("iii.txt", "a+");
fscanf (file,"%d",&min);
while (fscanf (file,"%d",&a) != EOF) if(a<min)min=a;
rewind(file);
while (fscanf (file,"%d",&a) != EOF) if(a==min)c++;
fprintf(file,"\n%d",c);
fclose(file);
return(0);
}
Объяснение кода листинга программы
- Включаем стандартную библиотеку ввода-вывода
- Объявляем функцию main()
- Создаем указатель file для работы с файлом
- Инициализируем переменные: a=0, min=0, c=0
- Открываем файл
iii.txtв режиме добавления+a - Считываем первое число из файла в переменную min
- В цикле while считываем каждое последующее число из файла в переменную a
- Если считанное число меньше min, то обновляем значение min
- После окончания цикла while сбрасываем позицию файла в начало с помощью функции rewind()
- В цикле while считываем каждое число из файла в переменную a
- Если считанное число равно min, то увеличиваем значение c на 1
- Записываем значение c в файл
- Закрываем файл
- Возвращаем 0, чтобы указать, что программа успешно завершилась