Advertisement
Guest User

Untitled

a guest
Nov 24th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. int maxi;
  7.  
  8. struct nod
  9. {
  10. int nr;
  11. nod *urm;
  12. };
  13.  
  14. ifstream f("test.in");
  15.  
  16. void creare(nod *&prim, nod *&ultim)
  17. {
  18. int n,i;
  19. nod *nou;
  20. f>>n;
  21. prim= new nod;
  22. f>>prim->nr;
  23. prim->urm=NULL;
  24. ultim=prim;
  25.  
  26. for(i=2; i<=n; i++)
  27. {
  28. nou=new nod;
  29. f>>nou->nr;
  30. nou->urm=NULL;
  31. ultim->urm=nou;
  32. ultim=nou;
  33. }
  34. }
  35.  
  36. void afisare(nod *prim)
  37. {
  38. nod *a;
  39.  
  40. for(a=prim; a!=NULL; a=a->urm)
  41. cout<<a->nr<<" ";
  42. }
  43.  
  44. void eliminare(nod *&prim)
  45. {
  46. nod *aux;
  47. aux=prim;
  48. prim=prim->urm;
  49. delete aux;
  50. }
  51.  
  52. void adaugare(nod *&ultim)
  53. {
  54. nod *nou;
  55. nou=new nod;
  56. cin>>nou->nr;
  57. nou->urm=NULL;
  58. ultim->urm=nou;
  59. ultim=nou;
  60. }
  61.  
  62. int patrat(int n)
  63. {
  64. int sq=sqrt(n);
  65. if(sq*sq==n)return 1;
  66. return 0;
  67. }
  68.  
  69. void mapatrate(nod *prim)
  70. {
  71. nod *a;
  72. int s=0,c=0;
  73.  
  74. for(a=prim; a!=NULL; a=a->urm)
  75. if(patrat(a->nr)==1)
  76. {
  77. c++;
  78. s=s+a->nr;
  79. }
  80. cout<<(float)s/c;
  81. }
  82.  
  83. void maxim(int &n, nod *prim)
  84. {
  85. nod *a;
  86. for(a=prim; a!=NULL; a=a->urm)
  87. if(a->nr>n)n=a->nr;
  88. }
  89.  
  90. void vecini(nod *prim)
  91. {
  92. nod *a;
  93. a=prim;
  94. while(a->urm!=NULL)
  95. {
  96. if(a->nr==maxi)
  97. cout<<a->urm->nr<<" ";
  98. if(a->urm->nr==maxi)
  99. cout<<a->nr<<" ";
  100. a=a->urm;
  101. }
  102. }
  103.  
  104. int main()
  105. {
  106. nod *prim,*ultim;
  107.  
  108. creare(prim,ultim);
  109. cout<<endl<<"coada: ";
  110. afisare(prim);
  111. cout<<endl<<endl;
  112.  
  113. cout<<"Adaug ";
  114. adaugare(ultim);
  115. cout<<endl<<"coada: ";
  116. afisare(prim);
  117. cout<<endl<<endl;
  118.  
  119. cout<<"sterg un element";
  120. eliminare(prim);
  121. cout<<endl<<endl<<"coada: ";
  122. afisare(prim);
  123. cout<<endl<<endl;
  124.  
  125. cout<<"med arit a nr patrate este ";
  126. mapatrate(prim);
  127. cout<<endl<<endl;
  128.  
  129. maxi=prim->nr;
  130. maxim(maxi,prim);
  131. cout<<"maximul este "<<maxi<<" si are vecinii ";
  132. vecini(prim);
  133. cout<<endl;
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement