Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2] 3  Все   Вниз
  Печать  
Автор Тема: помогите разобраться с поиском в масиве (C/C++)  (Прочитано 60890 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
pokk
Помогающий

ru
Offline Offline

« Ответ #30 : 19-11-2008 05:07 » 

почему до первого?
а до какого  ?
Код:
for (m=0,sum=0,d=5;d<0;d--)  
мне тут  d=5;d<0  не нравится  наверно надо d>0

кста, а ты нашел ошибку в алгоритме (в первом цикле)?
я нашёл ошибку в условии    (a[d]==0)   это то ?

Tщё вопрос. Так как у меня два нулевых элимента то какой он  возьмёт ?   
Если я правильно понял что цикол начинается с конца   то он возьмёт первый который найдёт  т.е.    a[4] 
так ?
Записан
pokk
Помогающий

ru
Offline Offline

« Ответ #31 : 19-11-2008 05:27 » 

вот что у меня получилось
Код:
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[]){

int a[6],max,u,d,sum,m;
 a[0]=1;
 a[1]=0;
 a[2]=2;
 a[3]=3;
 a[4]=0;
 a[5]=7;
for (m=0,d=5;d>0;d--){
if (a[d]==7){
m=d;
         
  for (sum=0; m>0; m--){
     sum+=a[m];
        }
       
        printf("\t\t\t%d\n",sum );
        return 0;
    }
}

}

Цикол первый работает  всё нормально  условие тоже выполняется  ,а вот  со вторым циклом что-то не так не могу понять что иненно

Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #32 : 19-11-2008 07:11 » 

pokk, ахринеть  Не может быть...

1. оформление и форматирование кода ужасное!!!
2. d=5 с каких это щей?
3. sum+=a[m], нифига у тебя не получится.
« Последнее редактирование: 19-11-2008 09:43 от McZim » Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #33 : 19-11-2008 07:14 » 

Задача
Вывести сумму элементов массива, от последнего ненулевого.
Я так понял твою задачу.

pokk, Замечательно! Браво! ты нашел ошибку
мне тут  d=5;d<0  не нравится  наверно надо d>0



Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #34 : 19-11-2008 07:15 » 

McZim, мухи отдельно, котлеты отдельно

как с каких? а какая размерность массива?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #35 : 19-11-2008 07:16 » 

вот почему
Код:
if (a[d]==7)
если нам нужен НУЛЕВОЙ элемент
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #36 : 19-11-2008 07:18 » new

а какая размерность массива?

да....извиняюсь.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #37 : 19-11-2008 07:20 » 

вот почему
Код:
if (a[d]==7)
если нам нужен НУЛЕВОЙ элемент

это мне или аффтару?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #38 : 19-11-2008 07:22 » 

McZim, к автору
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #39 : 19-11-2008 08:47 » 

а я если честно не понял задачу Улыбаюсь
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #40 : 19-11-2008 09:15 » 

ааааа, ну примерно понял Улыбаюсь
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #41 : 19-11-2008 09:27 » 

где-то за пределами мира сего родилось в общении такое
Код:
for(int d = 5; d > 0; d--)
    {
        if(a[d] == 0)
        {
            do
            {
                d++;
                sum += a[d];
            }while(d != 5);

            break;
        }
    }
pokk, расскажи, что мы родили?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #42 : 19-11-2008 09:38 » 

ну раз такая пьянка, то еще расскажи, если заменить условие:

Код:
if(a[d] == 0)

на условие:

Код:
if(a[d] == 0 && d != 5)

что это даст?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #43 : 19-11-2008 10:05 » 

Код:
#define ARRAY_SIZE(x) ( sizeof(x)/sizeof (x[0]))

void Test()
{
long a[] = {1,0,2,3,0,7};

size_t sum = 0;
bool useSum = false;
for (size_t i = 0; i != ARRAY_SIZE(a); ++i)
{
if (a[i] == 0)
useSum = !useSum;

if (useSum)
sum += a[i];
}
std::cout << "sum = " << sum << std::endl;
}
Записан

Странно всё это....
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #44 : 19-11-2008 10:06 » 

McZim, кста, если делаеть второй цикл с предусловием, то
Код:
if(a[d] == 0 && d != 5)
не нужно
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #45 : 19-11-2008 10:12 » 

Sla, можно.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #46 : 19-11-2008 10:22 » 

LogRus, хм, это разве сумма элементов от последнего нулевого значения?

и потом, вот тут:

Код:
if (useSum)
   sum += a[i];

мне кажется нужно сделать:

Код:
if (useSum)
{
   sum += a[i];
   useSum = false;
}
« Последнее редактирование: 19-11-2008 10:25 от McZim » Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #47 : 19-11-2008 10:30 » 

LogRus, у тебя получается складываются только 2 и 3, но это ведь значения не после последнего нулевого элемента, а последним в данном массиве является 7.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #48 : 19-11-2008 10:54 » 

........ каким образом можно сделать так  что бы выполнялась сумма МЕЖДУ нулевыми элимантами масива  ...............
Записан

Странно всё это....
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #49 : 19-11-2008 10:55 » 

LogRus, ну тада ага, я не так понял, да еще и Слава меня смутил Улыбаюсь
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #50 : 19-11-2008 10:59 » 

только вот задача опять таки не ясна, а если вот такой массив будет: {0,1,2,0,5,0}; между какими считать?

В любом случае у автора, теперь богатый выбор рабочего кода Улыбаюсь
« Последнее редактирование: 19-11-2008 11:01 от McZim » Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #51 : 19-11-2008 11:28 » 

McZim, какой вопрос такой ответ Улыбаюсь будет уточнение в вопросе - будет уточнее в ответе
Записан

Странно всё это....
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #52 : 19-11-2008 11:29 » 

Господа!
Мои слова вот отсюда
https://forum.shelek.ru/index.php/topic,16755.msg190554.html#msg190554

Цитата
а если перенести цикол туда тогда получится что  несколько раз выведется,а мне надо что бы он посчитал с нулегого элимента сумму до последнего    и один раз вывел   
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #53 : 19-11-2008 11:33 » 

ну в общем ждем аффтора, и внематочно его выслушиваем Улыбаюсь
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
pokk
Помогающий

ru
Offline Offline

« Ответ #54 : 19-11-2008 13:33 » 


вот полное задание.  Я делал от простого к сложному или рабивал задание на  более простоые примеры




В любом случае у автора, теперь богатый выбор рабочего кода Улыбаюсь
   
выбор не сильно большой  единствиное что понятно  вот это и то не всё 
Код:
for(int d = 5; d > 0; d--)
    {
        if(a[d] == 0)
        {
            do
            {
                d++;
                sum += a[d];
            }while(d != 5);

            break;
        }
    }

Код:

            do
            {
                d++;
                sum += a[d];
            }while(d != 5);

         

видимо этим вырожением  заменили цикол сумирования

Оо пока писал понял  Улыбаюсь
  пока  d не равно  5  как тока d=5  то  выполняется выход из цикла





 
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #55 : 19-11-2008 13:41 » 

Ёооо
Это же меняет суть, хотя и не намного
1. находим первый нулевой        B
2. находим последний нулевой   E
3 цикл от первого до последнего B...E  - сумма
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
pokk
Помогающий

ru
Offline Offline

« Ответ #56 : 19-11-2008 13:42 » 

Ёооо
Это же меняет суть, хотя и не намного
1. находим первый нулевой        B
2. находим последний нулевой   E
3 цикл от первого до последнего B...E  - сумма

Что бы это всё сделать надо было понять как вообще  сделать сумму с любого элимента   =))

Записан
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #57 : 19-11-2008 14:01 » 

pokk, тут есть решение для суммы чисел от последнего нулевого значения, есть решение между нулевыми значениями. Немного подумай и сделай так как от тебя требует задача.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #58 : 20-11-2008 05:33 » 

Пока без мата.

Какой-то фигнёй занимаемся - честное слово.
Задачи простые как 3 копейки, а автор даже сформулировать их не может.

особенно радуют слово цикол ( ЦИКЛ - ЦИКЛ - запомни раз и навсегда) и фразы

вот полное задание.  Я делал от простого к сложному или рабивал задание на  более простоые примеры

и где блин оно?

Что бы это всё сделать надо было понять как вообще  сделать сумму с любого элимента   =))

А на листочке ты, как суммы считаешь? Просто начни с нужного.

Пиши словесные алгоритмы.
« Последнее редактирование: 20-11-2008 08:12 от LogRus » Записан

Странно всё это....
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #59 : 20-11-2008 07:11 » 

LogRus, человек явно нерусскоязычен. Поспокойней.
Просто тему нужно перенести в Памагите, и тогда все станет на свои места
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Страниц: 1 [2] 3  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines