1 / 1 / 0
Регистрация: 24.04.2020
Сообщений: 12
1

Массив не заполняется

24.04.2020, 19:30. Показов 1161. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу понять почему массив не заполняется, при вводе 1 выдает 2, а при вводе 2 и больше выдает 0.

Вот задача 1) Дано натуральное число N. Вычислить произведение первых N сомножителей. .
p= 2/1*2/3*4/3*4/5*6/5*6/7*8/7*8/9...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <stdio.h>
#include <locale>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    int N,m = 2,n = 1;
    float r = 1;
    cout << "Введите число сомножителей: ";
    cin >> N;
    float *chislo =new float[N];
    for (int i = 0; i < N; i++) {
        chislo[i] = m / n;
        if (m / n < 1)
            m = m + 2;
        else (n = n + 2);
    }
    for (int i = 0; i < N; i++) {
        r *= chislo[i];
    }
 printf("%f",r);
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2020, 19:30
Ответы с готовыми решениями:

Заполнить массив строк из файла. Массив заполняется, но выводится не корректно
Здравствуйте! Такая проблема. В файле имена записаны в столбик и разделены точкой с запятой. Массив...

Не заполняется массив
Здравствуйте, не передается заполненный массив и не понимаю в чем проблема: N = 15 void...

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

Не заполняется массив
Не заполняет массив mass1. Когда к нему добавляет единицу, все равно оставляет внутри него один...

1
Параллельный Кот
1905 / 827 / 350
Регистрация: 25.03.2016
Сообщений: 2,045
24.04.2020, 20:07 2
Лучший ответ Сообщение было отмечено Hamlet_88 как решение

Решение

Цитата Сообщение от Hamlet_88 Посмотреть сообщение
C++
14
chislo[i] = m / n;
Целочисленное деление. Если m < n, результат 0. Приводите одно из чисел к типу с плавающей точкой, или на 1.0 домножайте в начале.
Цитата Сообщение от Hamlet_88 Посмотреть сообщение
float r = 1;
Почему именно float? Для чисел с плавающей точкой используется double (если конечно не нужна экономия памяти).
Цитата Сообщение от Hamlet_88 Посмотреть сообщение
float *chislo =new float[N];
Массив тут не нужен, можно сразу вычислять r *= m / n.

Добавлено через 13 минут
Поправка: r *= 1.0 * m / n для дробного r и целочисленных m и n.
1
24.04.2020, 20:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2020, 20:07
Помогаю со студенческими работами здесь

Не заполняется массив
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; int m, n, a, b, c; int mas; int...

Массив не заполняется значениями
Проблема: почему программа не запоминает массив b? int main(){ int n=10; for...

Не заполняется массив указателей
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;time.h&gt; #include...

Не заполняется динамический массив
Со статическим массивом всё работает как надо,а в динамическом заполняется только первый элемент....

не правильно заполняется массив
#include&lt;iostream&gt; #include&lt;fstream&gt; using namespace std; int main() { int i,k,n,m,j,l;...

Динамический массив не заполняется
Дан двумерный массив размерностью nxm (n и m задаются с клавиатуры), заполненный целыми случайными...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru