Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. /*
  2. Einfach verkettete Liste
  3. 1) Durchschnittsberechnung mit
  4. Ausgabe der Werte ueber dem Durchschnitt und
  5. variabler Werteanzahl.
  6. */
  7.  
  8. #include <iostream>
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11.  
  12. using namespace std;
  13.  
  14. struct wert_typ
  15. {
  16. //control
  17. wert_typ *next;
  18. //data
  19. int wert;
  20. };
  21.  
  22. int main ()
  23. {
  24. struct wert_typ *start, *work;
  25. int anzahl=0;
  26. float summe=0,durchschnitt;
  27. //Null-Liste
  28. start = NULL;
  29. // Ein undefinierter Zeiger zeigt meist dorthin, wo er den groessten Schaden anrichten kann.
  30. work=NULL;
  31.  
  32. cout<<"Anzahl der Werte"<<endl;
  33. cin>>anzahl;
  34. //Speicher reservieren
  35. for (int i=0;i<anzahl;i++)
  36. {
  37. work = (wert_typ *)malloc (sizeof(wert_typ));
  38. // ^ typisieren des untypisierten Zeigers
  39. //Einbau des neuen Blockes
  40. work->next = start;
  41. //(*work).next
  42. start=work;
  43. work=NULL;
  44. cout<<"Wert?"<<endl;
  45. cin>>start->wert;
  46. }
  47. //Zugriff Ausgabe
  48. work=start;
  49. cout<<"Messwert: \n";
  50. while (work!=NULL)
  51. {
  52. printf("%p: %d\n\r", work,work->wert);
  53. work=work->next;
  54. }
  55. cout<<"\n";
  56.  
  57.  
  58. //Zugriff Durchschnitt
  59. work=start;
  60. while(!work==NULL)
  61. {
  62. summe=summe+work->wert;
  63. work=work->next;
  64. }
  65. work=NULL;
  66. durchschnitt=summe/anzahl;
  67. cout<<"Durchschnitt="<<durchschnitt<<"\n";
  68. //Zugriff Ausgabe der Werte ueber Durchschnitt
  69. work=start;
  70. while(!work==NULL)
  71. {
  72. if(work->wert>durchschnitt)
  73. cout<<work->wert<<"\n";
  74. work=work->next;
  75. }
  76.  
  77.  
  78. // Freigabe des Speichers
  79. while(!start==NULL)
  80. {
  81. //Ausbau des Blockes
  82. work=start;
  83. start=work->next;
  84. work->next=NULL;
  85. free(work);
  86. work=NULL;
  87. }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement