J'ai travaillé à ce devoir de devoir pendant un certain temps et je ne peux pas comprendre ce que je fais mal. Comment mon programme est censé travailler:
L'utilisateur entre autant de nombres positifs comme ils le souhaitent,
Les chiffres sont dans une liste chaînée,
Les chiffres entrés doivent être additionnés,
diviser par le nombre de numéros est entré,
Il en résulte une moyenne,
Cependant, cela ne fonctionne pas comme je l'avais prévu et je joue avec cela depuis plus de 3 heures maintenant. Je contacterais mon professeur mais elle n'a pas encore répondu à mon dernier message et j'ai besoin d'aide tout de suite. Merci d'avance.Comment ajouter des valeurs de pointeur int dans une liste chaînée en C++?
Remarque: J'ai besoin de parcourir la liste pour additionner tous les nombres saisis et compter le nombre de nœuds.
#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);
}
devrait vous donner un.? Une meilleure description des problèmes que «ça ne marche pas» Ce qui ne fonctionne pas Qu'est-ce que vous attendez et ce qui se passe à la place? Où avez-vous des problèmes? – sth