Технически Университет Има отговори

Синтез и анализ на алгоритми

АА
Александър Атанасов
Технически Университет · 14.02.2024 · 678 прегледа
Може ли помощ? Изписва ми 1 грешка и не мога да разбера къде е. Големи числа се наричат цели положителни числа с k цифри,където k>255. Големите цели числа могат да се представят с помощта на линеен едносвързан списък, всеки елемент на който съдържа точно една цифра от числото. Дадено е голямо число N (до 100 цифри ). Да се напишат функции за: . представяне на числото чрез списък; . функция за извеждане на информацията в списъка; . умножение на голямо цяло число с едноцифрено число; #include #include #include #include using namespace std; const char* number[] = { "3", "5", "4", "2", "1", "7" }; // описание на едносвързан линеен списък struct item { int info; const unsigned int N; int main() { std::cout LargeNumber; cout > n; N->number = (LargeNumber) cout > N->number; cout N->number; cout > N->number; cout > N->number; cout > N->number; // проверка на празен списък if (list == NULL) { // насочване на указателя за началния елемент към новия елемент list = N; } else { // свързване на новия елемент след последния last->next = N; } // пренасочване на указателя за последния елемент към новия елемент last = N; // указване, че след последния елемент няма друг (край на списъка) N->next = NULL; cout input; } // връщане на указател към входа (началния елемент) на списъка return list; } { void Create{ point &Head } { point P; // текущ елемент point Last; = NULL; // последен елемент char ch; cout > ch; } { while (ch == 'Y' || ch == 'y') { P = new item; cin >> P->info; P->next = NULL; if (Head == NULL) Head = P; else Last->next = P; cout > ch; } // while } // Create { void main(){ int K; cout > K; point Point = Search(K, Head); if (PointK) cout info; else cout

2 отговора

Най-добър отговор · с най-много благодарности
1
Грешката е в следния ред: cout > N->number; В този ред се опитвате да отпечатате N->number, но N е указател към елемент от списъка, а не число. Трябва да използвате N->info, за да получите информацията за числото, съхранена в елемента: cout info; Декларация на структурата item: struct item { int info; item* next; }; Тази структура дефинира елемент от списъка, който съдържа: info: Цяло число, съхраняващо цифрата от числото. next: Указател към следващия елемент в списъка. Функция Create(point &Head): Тази функция създава списък с елементи, съдържащи цифрите от числото. point P; // текущ елемент: Дефинира се указател P, който ще се използва за обхождане на списъка. point Last; = NULL; // последен елемент: Дефинира се указател Last, който ще сочи към последния елемент в списъка. char ch;: Дефинира се променлива ch, за да се чете от потребителя дали иска да добави още цифри. while (ch == 'Y' || ch == 'y'): Цикъл, който се изпълнява, докато потребителят въведе Y или y. P = new item;: Създава се нов елемент P. cin >> P->info;: Въвежда се цифра от потребителя и се записва в P->info. P->next = NULL;: Указва се, че след P няма друг елемент. if (Head == NULL) Head = P;: Ако списъкът е празен, P се задава като начален елемент. else Last->next = P;: В противен случай, P се добавя след последния елемент. Last = P;: P се задава като последен елемент. cout > ch;: Потребителят се пита дали иска да добави още цифри. Функция Print(point Head): Тази функция извежда информацията за числото, съхранена в списъка. while (Head != NULL): Цикъл, който се изпълнява, докато не се стигне до края на списъка. cout info;: Извежда се цифрата, съхранена в текущия елемент. Head = Head->next;: Преминава се към следващия елемент.
1

За да отговорите, трябва да сте влезли в профила си.

Влезте