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

Помогите найти ошибку при заполнении вектора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка при перегрузке оператора вывода в файл http://www.cyberforum.ru/cpp-beginners/thread1557733.html
Добрый день, есть такой кусок кода: #include <iostream> #include <ostream> using std::ostream; using namespace std; std::ofstream &operator << (std::ofstream &out, Mass &a) {
C++ Вычислить среднее геометрическое положительных элементов каждого столбца матрицы как вычислить среднее геометрическое положительных элементов каждого столбца матрицы А(8,10) http://www.cyberforum.ru/cpp-beginners/thread1557732.html
C++ Выделить память под массив 1000х1000 элементов типа double
Привет всем, кто нибудь может подсказать как выделить память под массив 1000х1000 элементов типа double и заполнить его случайными числами в интервале от 1 до 10. Вот код что я набросал: void main() { double*P = (double*)VirtualAlloc(NULL, 1000*1000, MEM_COMMIT, PAGE_READWRITE); if (P==0){ MessageBox(0, "память не выделена", "ошибка", 0); return } //-заполним выделеный массив...
C++ Прокомментируйте код пожалуйста
#include<iostream.h> #include<stdio.h> #include<conio.h> #include<graphics.h> class Point { int X,Y; public: Point(int X,int Y) {this->X=X; this->Y=Y;}
C++ Заменить в данном тексте все слова «процент» символом «%» http://www.cyberforum.ru/cpp-beginners/thread1557712.html
Заменить в данном тексте все слова «процент» символом «%». Не могу понять как заменить. Добавлено через 40 минут Мне просто нужно слово "процент" заменить на символ "%" в этом предложении, а я не знаю как...
C++ Неверный вывод структур знак зодиака Доброго времени суток! Нуждаюсь в помощи. Необходимо сделать программу, что-то вроде базы данных. Есть структура, в ней хранятся имя и фамилия, дата рождения и знак зодиака. Причем, знак зодиака должен определятся автоматически. База должна позволять вводить информацию, хранить её в файле, осуществлять поиск по знаку зодиака, модификацию, сортировку и удаление данных. Не знаю, как... подробнее

Показать сообщение отдельно
anti-k
226 / 74 / 23
Регистрация: 17.07.2015
Сообщений: 774
Завершенные тесты: 1
21.10.2015, 12:06  [ТС]     Помогите найти ошибку при заполнении вектора
nmcf,
вот так убрал мусор )) а почему нельзя
C++
1
cout<<ch;
??? Это же масив

Добавлено через 54 минуты
Финальная версия, может кому пригодится. Сложение двух любых больших целых чисел(в строчках). может кому сгодится. Спасибо nmcf.
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
87
#include<iostream>//adding
#include<cstring>
#include<vector>
#include<iterator>
using namespace std;
 
 
typedef vector<char> Charvec;
 
void Summ(int&sum,bool& z);
void Compare(char A[],char B[], char*&a,char*&b);
Charvec sum(char a[],char b[],Charvec ch);
int main(){
    char A[]="9999";
    char B[]="111111111111111";
    Charvec ch;
    char*a;
    char*b;
    Compare(A,B,a,b);
 
 
    ch=sum(a,b,ch);
    for(int i=0;i<ch.size();i++)
    cout<<ch[i];    
    
 
    return 0;
}
void Summ(int&sum,bool& z){ 
      sum-=10;
      z=1;  
}
void Compare(char A[],char B[], char*&a,char*&b){
    if(strlen(A)>=strlen(B)){
        a=A;
        b=B;
    }else{
        a=B;
        b=A;
    }
    
}
Charvec sum(char a[],char b[],Charvec ch){
    int l1=strlen(a);
    int l2=strlen(b);
    int sum=0,x=0,y=0;
    bool z=0;
 
    while(l2>=0){
        x=(int)(a[l1]-48);
        y=(int)(b[l2]-48);
            if(z==1){
              sum+=1;
              z=0;
            }
     
      sum+=x+y;
      if(sum>=10)
      Summ(sum,z);
    
    ch.insert(ch.begin(),(char)(sum+48));
    sum=0;
            l1--;
            l2--;       
    }
    if(l1!=-1){
        while(l1>=0){
            x=(int)(a[l1]-48);
            if(z==1){
                sum+=1;
                z=0;
            }
            sum+=x;
            if(sum>=10)
            Summ(sum,z);
    ch.insert(ch.begin(),(char)(sum+48));
    sum=0;
    l1--;           
        }
    }
 
    if(z==1)
    ch.insert(ch.begin(),'1');
    ch[ch.size()-1]='\0';
    
    return ch;
}
 
Текущее время: 03:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru