Форум программистов, компьютерный форум CyberForum.ru

не работает sqrt декомпозиция - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача "Водолей" http://www.cyberforum.ru/cpp-beginners/thread642366.html
Вот условие: У исполнителя “Водолей” есть два сосуда, первый объемом A литров, второй объемом B литров, а также кран с водой. Водолей может выполнять следующие операции: Наполнить сосуд A (обозначается >A). Наполнить сосуд B (обозначается >B). Вылить воду из сосуда A (обозначается A>). Вылить воду из сосуда B (обозначается B>). Перелить воду из сосуда A в сосуд B (обозначается как...
C++ Двоичные файлы У меня есть код программы работающий с текстовыми файлами, #include <iostream> #include <conio.h> #include <cstdlib> #include <locale.h> #include <string.h> #include <fstream> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread642357.html
C++ Реализация собственного умного укзателя
Доброго времени суток! При самостоятельной реализации умного указателя столкнулся с проблемой при удалении самого указателя. Код программы имеет вид: #pragma once template <class Object> class Smart_ptr {
C++ Описать класс "Конус"
Язык С 1. Опишите класс "Конус" Данные класса: координаты центра основания, радиус основания, высота. Конструкторы класса: конструктор по умолчанию, конструктор конуса с центром в начале координат, конструктор произвольного конуса. 2. Определите методы: ввод конуса, вывод на экран, определение площади поверхности, определение объёма конуса. 3.Объявите конус с центром в начале координат и...
C++ деббагинг и отладка c++ http://www.cyberforum.ru/cpp-beginners/thread642303.html
С чего начать,о отладки вообще ничего не знаю и о дебагинге.
C++ Исключения в классах Здравствуйте. Какими средствами правильней всего сделать обработку исключений в классах? /* например, эта функция */ int SomeClass::someFunc( int some_arg ) { return some_arg * 18 } /* для нормальной работы должна получать числа от 0 до 42. Как реагировать на остальное? */ подробнее

Показать сообщение отдельно
Mines
0 / 0 / 0
Регистрация: 25.08.2012
Сообщений: 8
26.08.2012, 02:03  [ТС]     не работает sqrt декомпозиция
Вот учел поправку ~OhMyGodSoLong~
Вот стало так:
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
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<cstdio>
 
 
using namespace std;
 
int main() {
    int n ;
    cin>>n;
    int mas_1[n];
    for (int i = 0; i<n; i++)
        cin>>mas_1[i];
 
    int len = (int)sqrt(n) + 1;
    int mas_2[n];
    for (int i =0; i<n; i++)
        mas_2[i] = 0;
 
    for (int i = 0; i < n; i++)
        {
        mas_2[i / len] = mas_1[i] + mas_2[i/len];
        cout<<mas_2[i]<<' ';
        }
}
Но теперь в output при том же самом примере выдает mas_2[0] = 3 а остальные элементы массива заполнены нулями, то есть их значение не изменились. В чем причина?
Если кто-то знает, как правильно напистаь sqrt-декомпозицию - прошу помочь и\или поделится кодом. Спасибо!

Добавлено через 9 часов 41 минуту
Думал, это причина в том, что объявляю массив не верно. Решил попробовать статически объявить:
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
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<cstdio>
 
 
using namespace std;
 
int main() {
    /*
    int n ;
    cin>>n;
    */
    int mas_1[8] = {3,4,8,7,1,6,1,6};
    /*
    for (int i = 0; i<n; i++)
        cin>>mas_1[i];
    */
    int len = (int)sqrt(8) + 1;
    int mas_2[8];
    for (int i =0; i<8; i++)
        mas_2[i] = 0;
 
    for (int i = 0; i < 8; i++)
        {
        mas_2[i / len] = mas_1[i] + mas_2[i/len];
        cout<<mas_2[i]<<' ';
        }
}
В результате выдает то же, что и во второй раз - первый элемент = 3, а остальные = 0
В чем причина???
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru