Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2014, 20:25   #1
ZimOne
 
Регистрация: 01.12.2013
Сообщений: 5
По умолчанию Максимальное расстояние между локальными минимумами

Задача написать программу по нахождению максимального расстояния между двумя соседними локальными минимумами. На вход подается файл, в котором есть некая последовательность цифр. Программу написал, но она всегда выдает 1, в чем ошибка вообще не понимаю, мучаюсь несколько дней уже. Надеюсь на Ваш опытный взгляд и заранее благодарю!
P.S. программа без масива
P.P.S если у нас есть три числа, и то которое посредине меньше остальных двух, то это локальный минимум
Код:
#include <stdio.h>
#include <math.h>
int maxlength (FILE *fin);
int maxl = 0;
int main ()
{
    char filename[256];
    int result;
    FILE *fin;
    printf("Type file name ->");
    scanf("%s",filename);
    fin = fopen (filename, "r");
    if (!fin) 
    {
        printf ("Cant open file %s\n", filename);
        return -1;
    }
    result = maxlength(fin);
    switch(result)
    {
        case 1:
            printf ("The maximum length is:\n");
            printf ("%d",maxl);
            break;
        case -1:
            printf ("Not enough data\n");
            break;
    }
    fclose (fin);
    return 0;
}
 
int maxlength (FILE *fin)
{
    double x,y,z;
    int n = 0;
    fscanf(fin,"%lf",&x);
    fscanf(fin,"%lf",&y);
    while ((fscanf(fin,"%lf",&z)==1))
    {
        if ((y<x)&&(y<z))
        {
            n++;
        }
        else
        {
            if (n>maxl)
            {
            maxl = n;
            }
            n = 0;  
        }   
        x = y;
        y = z;  
        
    }
    
    return 1;
}

Последний раз редактировалось Stilet; 07.10.2014 в 20:33.
ZimOne вне форума Ответить с цитированием
Старый 07.10.2014, 20:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но она всегда выдает 1
Цитата:
return 1;
}
Признайся - писал не ты
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.10.2014, 20:52   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Признайся - писал не ты
да и не читал. скопипастил с одного форума прям в другой, чо время-то терять?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наименьшее расстояние между локальными максимумами vadiprog Помощь студентам 3 10.12.2011 20:44
Расстояние между строками izoalex Паскаль, Turbo Pascal, PascalABC.NET 3 15.11.2011 20:14
Расстояние между символами. Meridian Помощь студентам 0 05.06.2010 15:58
Расстояние между раммкой Syltan Microsoft Office Word 1 14.11.2009 20:31
Расстояние между строками Kib Общие вопросы Delphi 5 30.06.2009 01:02