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

Удалить строки, сумма цифр которых является числом Фибоначчи - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как правильно ограничить число знаков после запятой при выводе массива http://www.cyberforum.ru/cpp-beginners/thread603415.html
Доброго времени суток. Проблема в следующем - считается обратная матрица, при выводе необходимо ограничить число символов после запятой. Не могли бы вы помочь в этом деле. Сам код #include <iostream> void inversion(double **A, int N) { double temp;
C++ Компиляция Здравствуйте, программисты! Я немного запутался с тем, как проводится компиляция в C++. Я так понял, что вначале все обрабатывается препроцессором, который вставляет в файл вместо директив #include соответствующие файлы, потом код переводится в объектный, а после из него уже превращается в exe-файл. Машинный код в объектном содержит инструкции, которые может выполнять та или иная платформа. Но... http://www.cyberforum.ru/cpp-beginners/thread603396.html
Ошибки я не пойму что от меня хотят C++
Есть 3 файла. main.cpp, array1.cpp и array1.h. Собственно такие ошибки \ivan\array1.h||In function 'std::ostream& operator<<(std::ostream&, Array&)':| \ivan\array1.h|27|error: 'int Array::size' is private| \ivan\array1.cpp|101|error: within this context| \ivan\array1.h|25|error: 'int* Array::ptr' is private| \ivan\array1.cpp|102|error: within this context| \ivan\array1.cpp|107|error: name...
C++ Нажатие клавиши в консоли
Есть ли метод для нажатия клавиши (любой) в консоли? Т.е. нажал, к примеру, на клавишу Номе и в консоли вывело "Привет" и тп.
C++ Не работает обмен элементов с заданными номерами! http://www.cyberforum.ru/cpp-beginners/thread603386.html
Не работает обмен элементов с заданными номерами! #include "stdio.h" #include "conio.h" #include "windows.h" #include "locale.h" #include "stdlib.h" #include "string.h" #include "iostream.h" #define OUTPUT_FILE "./OUTPUT.TXT"
C++ Напишите декларацию класса Student Напишите декларацию классу Student, предусмотреть что имя студента (до 25 символов), фамилия(до 25 символов), номер студенческого билета(до 9 символов, например, «151ПЕФ611») и год рождения. У класса должна быть функция clear(), которая присвоит для имя, фамилии и номеру студенческого билета пустую строку, а году рождения – 0. Напишите дефиницию этой функции. подробнее

Показать сообщение отдельно
Catstail
Модератор
 Аватар для Catstail
21501 / 10254 / 1670
Регистрация: 12.02.2012
Сообщений: 17,139
12.06.2012, 15:15     Удалить строки, сумма цифр которых является числом Фибоначчи
Вот еще решение:

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "iostream.h"
#include "windows.h"
 
int main(int argc, char* argv[])
{
    int i,j,sumstr,n,m,k,l;
    SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
    int Fib[30];
    // строим п-ть Фибоначчи заранее
    Fib[0]=1;
    Fib[1]=1;
    for (i=2; i<30; i++) Fib[i]=Fib[i-1]+Fib[i-2];
        // Выделяем массив и заполняем его 
    cout << "Введите к-во строк: ";
    cin >> m;
    cout << "Введите к-во столбцов: ";
    cin >> k;
        int **Matr = new int* [m];
    for (i=0; i < m; i++) Matr[i]=new int [k];
        for (i=0; i < m; i++)
    {
            for (j=0; j < k; j++)
        {
        cout << "Matr[" << i << "][" << j << "]= ";
        cin >> Matr[i][j];
        }
        cout << endl;
    }
    int *stri = new int[m];
    // считаем сумму каждой строки
        for (i=0; i < m; i++)   
    {
           sumstr=0;
           for (j=0; j < k; j++) sumstr+=Matr[i][j];
           // проверяем на попадание в п-ть Фибоначчи
           n=0;
           for (j=0; j < 30; j++)
        if (sumstr == Fib[j]) 
        {
            n=j+1;
            break;
        }
        stri[i]=n;
    }
    // Считаем, сколько строк оставить
    n=0;
    for (i=0; i < m; i++) 
            if (stri[i] == 0) n++;
    if (n > 0)
    {
           // Выделяем память под новый массив:
           int **NewMatr = new int * [n];
           for (i=0; i < n; i++) NewMatr[i]=new int [k];
           // Переносим из старого в новый
           l=0;
           for (i=0; i < m; i++)
        if (stri[i]==0)
        {
            for (j=0; j < k; j++) NewMatr[l][j]=Matr[i][j];
            l++;
        }
          // Печатаем результат
          cout << "Выходной массив:" << endl <<endl;
    for (i=0; i < n; i++)
    {
         for (j=0; j < k; j++)
                  cout << NewMatr[i][j] << " ";
             cout << endl;
    }
    // Удаляем выходной массив
    for (i=0; i<n; i++) delete [] NewMatr[i];
        delete [] NewMatr;
    }
    else
            cout << "Нет ни одной строки с суммой из ряда Фибоначчи!";
    // Удаляем исходный массив
    for (i=0; i < m; i++) delete [] Matr[i];
    delete [] Matr;
    return 0;
}
 
Текущее время: 05:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru