Въпроси от колеги

Общност за взаимопомощ - попитайте и помогнете на колегите от Вашата област.

КСТ Технически Университет
АА
Александър Атанасов
Технически Университет · 14.02.2024 · 690 прегледа

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

Може ли помощ? Изписва ми 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
ГМГалина Маринова
Галина Маринова
Технически Университет · 24.02.2024
Грешката е в следния ред:
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

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

Влезте