Ich habe für eine Weile an dieser Hausaufgabe gearbeitet und kann nicht herausfinden, was ich falsch mache. Wie mein Programm ist wohl arbeiten:
Benutzer so viele positive Zahlen, wie sie geht es wünschen, sind
Zahlen in einer verknüpften Liste,
Zahlen eingegeben hinzugefügt werden sollte,
Dividieren durch die Menge von Zahlen eingegeben,
Ergebnis im Durchschnitt,
Allerdings funktioniert es nicht so, wie ich es beabsichtigt hatte und ich spiele jetzt seit über 3 Stunden damit. Ich würde meinen Lehrer kontaktieren, aber sie hat immer noch nicht auf meine letzte Nachricht geantwortet und ich brauche sofort Hilfe. Danke im Voraus.Wie Add-In-Zeigerwerte in einer verknüpften Liste in C++?
Hinweis: Ich muss die Liste durchqueren, um alle eingegebenen Zahlen aufzählen und die Anzahl der Knoten zählen.
#include <iostream>
using namespace std;
int num, total, num_entries = 1;
struct number_node
{
int number;
number_node *next;
};
number_node *head_ptr;
number_node *current_ptr;
int get_number_data(int &number);
void add_node(int &number);
void move_current_to_end();
void display_avg();
void delete_list();
int main()
{
if(get_number_data(num))
{
head_ptr = new number_node;
head_ptr->number = num;
head_ptr->next = NULL;
while(get_number_data(num))
{
add_node(num);
}
display_avg();
delete_list();
}
system("pause");
return 0;
}
int get_number_data(int &number)
{
int keep_data = 1;
cout << "Enter a positive number (Enter a negative number to stop): ";
cin >> num;
if(num < 0)
{
keep_data = 0;
}
return(keep_data);
}
void add_node(int &number)
{
number_node *new_rec_ptr;
new_rec_ptr = new number_node;
new_rec_ptr->number = num;
new_rec_ptr->next = NULL;
move_current_to_end();
current_ptr->next = new_rec_ptr;
}
void move_current_to_end()
{
current_ptr = head_ptr;
num_entries++;
while(current_ptr->next != NULL)
{
current_ptr = current_ptr->next;
total = current_ptr->number + total;
}
}
void display_avg()
{
current_ptr = head_ptr;
cout << "Average = " << total/num_entries << endl;
}
void delete_list()
{
number_node *temp_ptr;
current_ptr = head_ptr;
do
{
temp_ptr = current_ptr->next;
delete current_ptr;
current_ptr = temp_ptr;
}
while(temp_ptr != NULL);
}
Sie sollten eine geben.? bessere Beschreibung der Probleme als "es funktioniert nicht". Was funktioniert nicht? Was erwarten Sie und was passiert stattdessen? Wo haben Sie Probleme? – sth