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

динамический массив чисел - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти все натуральные числа, не превосходящие заданного N и равные сумме кубов своих цифр. http://www.cyberforum.ru/cpp-beginners/thread358133.html
Найти все натуральные числа, не превосходящие заданного N и равные сумме кубов своих цифр. Смог осилить только для чисел, не превосходящих 1000. #include "stdafx.h" void main() { for (int i=1; i<1000; i++) { int t = i, sum=0;
C++ Свой класс String Небольшой набросок на класс String #include <iostream> #include <cstring> using namespace std; class String { struct Srep;//представление Srep *rep; http://www.cyberforum.ru/cpp-beginners/thread358125.html
do this 10 second's C++
вобщем сабж. Имеется некоторая функция foo. Хочется, чтобы она выполнялась 10 секунд: int timer = 10 //секунд; while(timer){ foo() } Как попроще реализовать? Добавлено через 1 минуту редактирование не работает. Имелось ввиду: int timer = 10 //секунд; while(timer){ foo() }
C++ char
посоветуйте книжку где по подробнее описывается взаимодействие в char на c
C++ Объявление массивов в С/С++ http://www.cyberforum.ru/cpp-beginners/thread358091.html
Пытаюсь создать матрицу размера n: #include <iostream> using namespace std; int main() { int n,i,j; int m; cout << "Введите n\n"; cin >> n;
C++ error C2601: 'main' : local function definitions are illegal fatal error C1004: unexpected end of file found День добрый люди написал програму выдает 2 ошибки че не так подскажите error C2601: 'main' : local function definitions are illegal fatal error C1004: unexpected end of file found #include "stdafx.h" #include <iostream> #include <string.h> #include <conio.h> using namespace std; подробнее

Показать сообщение отдельно
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
29.09.2011, 23:52     динамический массив чисел
задача не тривиальная, я понимаю замешательство ТС
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
82
83
84
85
86
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <errno.h>
#include <string.h>
 
#define not(a) ((abs(a) == 1 || a == 0) ? 0 : 1)
 
typedef char __byte;
const int dec = 10;
 
int znak_ (int tmp){
    int retu_rn = (tmp >> (sizeof(int) * 8 - 1));
    return retu_rn;
}
 
int number_mass(int number){
    int tmp = number, retu_rn = 0;
 
    while(tmp > 0){
        tmp /= dec; ++retu_rn;
    }
    return retu_rn;
}
 
void numeric_out(int number, int ves, __byte* arr){
    int tmp = number, i = ves - 1;
 
    for(i; i >= 0; --i){
        arr[i] = (tmp % dec);
        tmp /= dec;
    }
}
 
int double_group(__byte* arr, int iter){
    int i = 1, j, tmp = iter;
    for (i; i < tmp; ++i){
 
        arr[i] += (dec * arr[i - 1]);
 
        for (j = i - 1; j < tmp - 1; ++j){
            arr[j] = arr[j + 1];
        }
 
        --tmp;
        arr = realloc(arr, iter * sizeof(__byte));
    }
    return tmp;
}
 
int main(){
 
    __byte *array;
    int number, count = 0, i, tmp, znak;
    scanf("%d", &number);
 
    znak = ~znak_(number) + 1;
    if(znak) number = ~(number - 1) | (~number + 1);
 
    if (not(number)){
 
        count = tmp = number_mass(number);
        array = (__byte*) malloc (tmp * sizeof(__byte));
        numeric_out(number, tmp, array);
        
        for(i = 0; i < count; ++i)
            printf(" %d", (int)array[i]);
 
        printf("\n\n");
        count = tmp = double_group(array, tmp);
 
        printf("бит знака: %d\n", znak);
        for(i = 0; i < count; ++i)
            printf("байт %d: %d\n", (count - i), array[i]);
            
        free(array);
    }
    else if (znak)
        printf("знаковый бит: %d\nчисло: %d\n", znak, ~number + 1);
    else if (!number)
        printf("нуль йопт");
    else
        printf("знаковый бит: %d\nчисло: %d\n", znak, number);
 
    return 0;
}
вывод
123456789
1 2 3 4 5 6 7 8 9

бит знака: 0
байт 5: 12
байт 4: 34
байт 3: 56
байт 2: 78
байт 1: 9
 
Текущее время: 08:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru