Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 32

Подпрограммы .Ничего не выводит

26.01.2020, 17:40. Показов 2303. Ответов 8

Студворк — интернет-сервис помощи студентам
Задание: В одномерном массиве, который состоит из n целых элементов, вычислить:
а) произведение элементов массива с положительными номерами;
б) сумму элементов массива, расположенных между первым и последним нулевыми
элементами;

А проблема в том ,что после того как я ввожу массив ,ничего не выводит (даже программа не завершается ,просто ничего нету)
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <conio.h>
#include <iostream>
using namespace std;
int Dob(int*,int);
int Sum(int*,int);
int main()
{setlocale(LC_ALL, "Russian");
  int k,dob,i,sum,kzero(0);
  cout<<endl<<"Vvedite kol-vo elementov: ";
  cin>>k;
  int *mas=new int[k]; 
  for(i=0;i<k;i++)
  {
    cout<<endl<<"Vvedite element #"<<i<<" ";
    cin>>mas[i];
  }
  
 for(i=0;i<k;i++)
  {
    if(mas[i]==0) kzero++;
  }    
  dob=Dob(mas,k);
  sum=Sum(mas,k);
  cout<<endl<<"Proizved: "<< dob;
  if(kzero<2) cout<<endl<<"Vveden < 2-x 0";
  else cout<<endl<<"Summa "<<sum;
  delete [] mas; 
  getch();
  return 0;
}
int Dob(int *mas1, int k1)
{
    int dob, i;
    dob = 1;
    for (i = 1; i < k1; i++)
    dob*=mas1[i];
    return dob;
}
int Sum(int *mas2,int k2)
{
  int sum=0,i,bzero,ezero;
  
  for(i=0;i<k2;i++) 
  if(mas2[i]==0)
   { 
     bzero=i;
     break;
   }
   for(i=k2-1; i>=0; k2--) 
   if(mas2[i]==0)
   { 
     ezero=i;
     break;
   } 
    for (i=0; i<=k2; i++)
    {
        sum=sum+mas2[i];
    }
  return sum;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.01.2020, 17:40
Ответы с готовыми решениями:

Почему ничего не выводит?
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;string.h&gt; #include&lt;conio.h&gt; class gip //класс, описывающий гиперболу {...

запускается консоль и ничего не выводит
#include&lt;iostream&gt; #include&lt;fstream&gt; using namespace std; int func(int **mas, int i, int j, int n, int...

Не выводит ничего при правильном раскладе
#include &lt;iostream&gt; #include &lt;locale.h&gt; using namespace std; int main() { setlocale(LC_ALL,&quot;RUS&quot;); int s=0,n; char c,a; ...

8
28 / 20 / 6
Регистрация: 19.11.2017
Сообщений: 91
26.01.2020, 17:55
Ну у меня все выводит! Ты как-то не так вводишь массив видимо.
И кстати, мне кажется ты не совсем понял первую задачу: произведение элементов массива с положительными номерами - это по моему мнению положительные числа перемножать, а не те, у которых положительный индекс в массиве) а то ты только 0 индекс пропустил и остальные числа перемножил.
Миниатюры
Подпрограммы .Ничего не выводит  
0
 Аватар для vlisp
1067 / 988 / 153
Регистрация: 10.08.2015
Сообщений: 5,390
26.01.2020, 18:22
for(i=k2-1; i>=0; k2--)
0
28 / 20 / 6
Регистрация: 19.11.2017
Сообщений: 91
26.01.2020, 18:23
Лучший ответ Сообщение было отмечено Eugeneee как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <conio.h>
#include <iostream>
using namespace std;
int Dob(int*, int);
int Sum(int*, int);
int main()
{
    setlocale(LC_ALL, "Russian");
    int k, dob, i, sum, kzero(0);
    cout << endl << "Vvedite kol-vo elementov: ";
    cin >> k;
    int* mas = new int[k];
    for (i = 0; i < k; i++)
    {
        cout << endl << "Vvedite element #" << i << " ";
        cin >> mas[i];
    }
    dob = Dob(mas, k);
    sum = Sum(mas, k);
    cout << endl << "Proizved: " << dob;
    cout << endl << "Summa: " << sum;
    delete[] mas;
    system("pause");
    return 0;
}
int Dob(int* mas1, int k1)
{
    int dob, i;
    dob = mas1[0];
    for (i = 0; i < k1; i++)
        if (mas1[i] > 0) dob *= mas1[i];
    return dob;
}
int Sum(int* mas2, int k2)
{
    int sum = 0, i;
 
    for (i = 0; i < k2; i++)
    {
        if (mas2[i] == 0)
        {
            i++;
            if (i >= k2) break;
            while (mas2[i] != 0 && i < k2)
            {
                sum += mas2[i];
                i++;
            }
            break;
        }
    }   
    return sum;
}
Я тут слегонца переделал. Теперь чуть быстрее сумму будет искать. По сути по всему массиву только 1 раз пройдет. И переделал как я написал произведение. Все таки я думаю, что имеется ввиду положительные элементы.
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
26.01.2020, 18:40
Цитата Сообщение от Eugeneee Посмотреть сообщение
вычислить произведение элементов массива с положительными номерами;
уточняйте задание (как вариант вычислить произведение элементов массива с чётными номерами)

Цитата Сообщение от Andymit Посмотреть сообщение
не те, у которых положительный индекс в массиве
не путайте нумерацию и индексацию. все номера положительные, т.к. начинаются с 1
0
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 32
26.01.2020, 18:49  [ТС]
спасибо большое . Заработало после того как я вторую часть задания сделал вашим методом)

Добавлено через 3 минуты
СПАСИБО БОЛЬШОЕ .Заработало после того как я вторую часть задания сделал вашим методом))))))
0
28 / 20 / 6
Регистрация: 19.11.2017
Сообщений: 91
26.01.2020, 19:24
Yetty, немного не понял замечания. Разве индексы могут быть отрицательными? Если не брать в расчет 0. Я просто на этом сделал акцент потому, что в коде у автора произведение рассчитывалось так:
C++
1
2
3
4
5
6
7
8
int Dob(int *mas1, int k1)
{
    int dob, i;
    dob = 1;
    for (i = 1; i < k1; i++)
    dob*=mas1[i];
    return dob;
}
то есть нулевой элемент пропускался. Я лишь предположил, что речь ведется о положительных элементах массива

Добавлено через 10 секунд
Eugeneee, всегда пожалуйста
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
26.01.2020, 20:49
Цитата Сообщение от Andymit Посмотреть сообщение
Разве индексы могут быть отрицательными?
нет конечно. индексы в С++ начинаются с 0. номера и индексы на единицу отличаются: number=index+1
Цитата Сообщение от Andymit Посмотреть сообщение
Я лишь предположил, что речь ведется о положительных элементах массива
это очень маловероятно, но раз ТС не хочет уточнить условие - пусть сдаёт то что написал
0
28 / 20 / 6
Регистрация: 19.11.2017
Сообщений: 91
26.01.2020, 20:55
Yetty, ну, в общем, из-за отсутствия точности в условии вся путаница)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.01.2020, 20:55
Помогаю со студенческими работами здесь

Vusial Leak Detector ничего не выводит
Естественно подключил все заголовочные файлы и статические библиотеки. Рядом почти такой-же проект в нем все работает, возможно что это...

не могу найти ошибку, программа ничего не выводит
Не выводится комбинация из 5 единиц или нулей, не могу найти ошибку, подскажите пожалуйста, где ошибся:cry: Само задание: Дана строка,...

Отладить программу, которая ничего не выводит на экран
Вроде отладила программу,она срабатывает,но ничего не выводит на экран. Когда закрываешь окно с выводом,показывает такое сообщение...

Мой проект не выводит ничего на экран, что не так?
Вычислить, не используя функцию pow, значения функции z(x, m) = xm sinm(xm), для значений аргументов : x от - 1.1 до 0.3 с шагом 0.2; ...

Все компилируется, ничего не работает, cout не выводит текст
Приветствую! Проблема заключается в следующем: Ни разу не срабатывает строка из первого же цикла. cout &lt;&lt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru