Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите исправить код 
:(
    Опции темы
Truegirl
Дата 13.12.2008, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 20.11.2008

Репутация: нет
Всего: нет



Уважаемые программисты, очень срочно надо исправить код, но я не пойму  почему  он неправельно работает.
Вот задание
Найти наибольшую последовательность в массиве, и вывести ее произведение.(под последовательностью подразумевается одинаковые числа, например 123455555567696, 555555- это последовательность)
Код выводит наибольшую последовательность, но когда надо подсчитать произведение, он выводит какой-то бред. 
Заранее спасибо
Код
 #include<stdio.h>
#include<conio.h>
#include <conio.h>
#define N 50
main()
{
    int a[N];
    int i,k,n,sum=1,r,max,m;
    int    pro=1;
    printf("Input the dimension of array\n");
    scanf("%d",&n);
    printf("elements of array\n");
    for (i=0;i<n;i++)
    {
        printf("a[%d]=",i+1);
        scanf("%d",&r);
        a[i]=r;
    }

    for(i=0;i<n;i++)
    {    
        if (a[i]==a[i+1]){
            sum++;
            k=sum;}
        if (a[i]!=a[i+1]){
            sum=1;
        }    
            if (i == 1){
            max = sum;
            m=1;}
        else if (sum >max){
            max = sum;
            m=i;}
        
    }

    
    for(i=m;i<n;i++){
        pro*=a[i];}

    printf("%d\n",max);
    printf("%d",pro);
    return 0;
    getch();
}



PM MAIL   Вверх
2p0i
Дата 13.12.2008, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 14.9.2007

Репутация: нет
Всего: 1



Первое, что бросается в глаза - у вас в цикле i меняется от 0 до n-1, и вы сравниваете i-й элемент с (i+1)-м, но для i=n-1 будет сравнение с несуществующим элементов.

Насколько я разобрался в логике, в max должна записываться длина, а в m - позиция последнего элемента последовательности. Почему тогда вы берете произведение элементов от m до n-1, а не от m-max+1 до m?
PM MAIL   Вверх
Lazin
Дата 13.12.2008, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



Код

 #include<stdio.h>
#include<conio.h>
#include <conio.h>
#define N 50
main()
{
    int a[N];
    int i,k,n,sum=1,r,max,m;
    int    pro=1;
    printf("Input the dimension of array\n");
    scanf("%d",&n);
    printf("elements of array\n");
    for (i=0;i<n;i++)
    {
        printf("a[%d]=",i+1);
        scanf("%d",&r);
        a[i]=r;
    }
    m = 0;
    for(i=0;i<n;i++)
    {    
        if (a[i]==a[i+1]){
            if (a[m] != a[i]) m = i;
            sum++;
            k=sum;}
        if (a[i]!=a[i+1]){
            sum=1;
        }    
            if (i == 1){
            max = sum;
            m=1;}
        else if (sum >max){
            max = sum;
            m=i;}
        
    }
    
    for(i=m;i<n;i++){
        pro*=a[i];}
    printf("%d\n",max);
    printf("%d",pro);
    return 0;
    getch();
}

как-то так
PM MAIL Skype GTalk   Вверх
Truegirl
Дата 13.12.2008, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 20.11.2008

Репутация: нет
Всего: нет



Все равно не получается,  выводит неправельное произведение. Если я не ошибаюсь, то должно выводиться элемент массива в степени кол-ва элементов? А выводиться вообще непонятное значение. HELP ME PLEASE

Это сообщение отредактировал(а) Truegirl - 13.12.2008, 23:56
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0612 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.