.
Отговор в тема
Резултати от 1 до 2 от общо 2
  1. #1

    Помощ за C++

    Здравейте,
    имам индивидуална задача по информатика, в която трябва две числа да се сравнят, да се намери сборът им, разлика и произведението , като условието е да се изпозлват масиви, като всеки елемент от масива, отговаря на една цифра от числото. Успях да се справя със всичко, освен разликата. Тя си работи по принцип, но в някои случаи като например при числата
    9999 и 2 изписва грешен резултат. Спешно ми трябва помощ! Ето кода за разликата (или го редактирайте или напишете нов):
    Код:
    //razlika
    if (big==1||big==0) {brD=brA;for(k=0;k<=brD;k++) {
    if(a[k]<b[k]){a[k]=a[k]+10;a[k+1]=a[k+1]-1;}d[k]=a[k]-b[k];}}
    else
    if (big==-1) {brD=brB;for(k=0;k<=brD;k++) {
    if(b[k]<a[k]){b[k]=b[k]+10;b[k+1]=b[k+1]-1;}d[k]=b[k]-a[k];}}
    //izhod na razlika
    proverka(d,brD);
    cout<<"nThe subtraction is ";
    for(k=brD-1;k>=0;k--) cout<<d[k];
    Уточнения: big казва кое от двете числа е по-голямо;
    brA е броят на цифрите на числото А
    brB е броят на цифрите на числото Б
    ПОМОЩ!!!

  2. #2
    Мега фен Аватара на Chacho
    Регистриран на
    Nov 2006
    Мнения
    15 573
    Лелеее как пишеш всичко на един ред. Аз съм същия де, но сега разбирам колко е трудно да се чете като си страничен. Пък и C++ не съм писал много, та съм на четене с рабиране. Съвсем ми заминава разбирането така.

    Общо взето алгоритъма ми изглежда добре. Във втория случай обаче, когато разглеждаш А да е по-малко от Б, не трябва ли след разликата да обърнеш знака.

    Процедурата проверка хич не разбрах каква е.

    Ако работи при теб добре и има някои единични случаи, в които се появява грешката, може проблема да не е в теб а в компилатора. Мен ми се случва на Visual Basic при идентичен код на два различни компютъра да дава коренно различни резултати. Може да има грешки във вградените библиотеки, ако се променени.

    Дай няколко резултата от примерите в които не действа алгоритъма да видим от какво естество са, току виж ми хрумне каква е грешката. Като изключим това за обръщането на знака на разликата не видях грешка. Поздравления за решението ти.
    Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.

Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си