41 Востаннє редагувалося Itari (11.11.2015 20:06:48)

Re: Допоможіть будь ласка з написанням програм

Наприклад як у мене: Змінна, яка інкрементується, якщо число меньш нуля. У іншому випадку ця змінна звіряється с другою змінною, і якщо вона більше - запамятовується, як показчик найбільшої на цей ітерації цикла величени послідовністі

      for(i=0;i<n;i++)
    {
    printf("Введiть [%d] елемент: ",i);
    scanf_s("%d",&x);
        if(x<0){ 
           n++; //Якщо зявилось чисо меньш нуля рахуємо його до кількості
        } else {
          if(n>k) k=n; //Інакше звіряємось с найбільшою кількостью й напевно запамятовуєм
          n=0; //Та робимо сброс лічильника кількості поряд існуючих чисел.
        };
    }

Зрозуміло?

Подякували: snikers.mc1

42

Re: Допоможіть будь ласка з написанням програм

Зрозуміло, дуже велике дякую вам за допомогу.
Яку літературу мені посовітуєте читати, щоб дарма не тратити час на непотрібну?

43

Re: Допоможіть будь ласка з написанням програм

Значно краще, але завдання "підраховувати кількість від'ємних чисел" не було. І відступи стоять неправильно - друга пара printf/scanf_s мають бути на рівень нижче за for, вони в циклі.
Тепер - давайте лічити елементи в підпослідовностях. Коли елемент від'ємний, треба збільшувати k, правильно. А коли додатній - треба вивести "послідовність з k елементів скінчилася" і поставити k=0, адже тепер чекаємо на нову послідовність. Зробіть так.

44

Re: Допоможіть будь ласка з написанням програм

Яку літературу мені посовітуєте

Керніган та Річчі.

Подякували: snikers.mc1

45

Re: Допоможіть будь ласка з написанням програм

Прихований текст
#include "stdafx.h"
#include "windows.h"
#include "locale.h"

int main()
{
    setlocale(LC_ALL,"RUS");
    int x,i,n,k=0,l=0;
    printf("Введiть кiлькiсть елементiв: ");
    scanf_s("%d",&n);
    for(i=0;i<n;i++)
    {
        printf("Введiть [%d] елемент: ",i);
        scanf_s("%d",&x);
        if(x<0) l++;
        else 
        {
            if(l>k)
                printf("Послiдовнiсть вiд'емних елементiв скiнчилася\n");
                k=0; 
        }
    }
    system("pause");
    return 0;
}

46 Востаннє редагувалося koala (11.11.2015 21:42:56)

Re: Допоможіть будь ласка з написанням програм

1. Нащо ви ввели змінну l? Що вона взагалі зберігає? Я, здається, прямо написав, що треба робити.
2. 20-й рядок неправильно поставлений, він не всередині if.

47

Re: Допоможіть будь ласка з написанням програм

1. l - лічильник, тому що якщо залишаю n, збивається кількість елементів, і якщо пишу ввести 5, вводиться 7, пишу 7 - вводться 9.
2. виправив 20 рядок, поставив фігурні дужки.

48

Re: Допоможіть будь ласка з написанням програм

Чим l і n відрізняються, я бачу. А чим l і k відрізняються? Чому ви замінили k на l і порівнюєте їх, ще й занулюєте k (при тому, що ніде не змінюєте його значення з 0)?

49 Востаннє редагувалося snikers.mc (11.11.2015 22:33:36)

Re: Допоможіть будь ласка з написанням програм

Прихований текст
#include "stdafx.h"
#include "windows.h"
#include "locale.h"
 
int main()
{
    setlocale(LC_ALL,"RUS");
    int x,i,n,k=0,l=0;
    printf("Введiть кiлькiсть елементiв: ");
    scanf_s("%d",&n);
    for(i=0;i<n;i++)
    {
    printf("Введiть [%d] елемент: ",i);
    scanf_s("%d",&x);
        if(x<0){ 
           l++;
        } else {
          if(l>k)  k=l; 
          l=0;
        }
    }
    printf("Послiдовнiсть з [ %d ] елементiв скiнчилась\n",k);
    system("pause");
    return 0;
}

50

Re: Допоможіть будь ласка з написанням програм

Щось ви через крок стрибаєте - вже свою задачу вирішили, а це за моїм планом мав бути наступний крок.

Подякували: snikers.mc1

51

Re: Допоможіть будь ласка з написанням програм

Я вже побачив вирішення от і написав зразу, дуже велике дякую вам за допомогу!