Advertisement
Guest User

Untitled

a guest
Dec 9th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.12 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. // Ide jön a megoldás
  5.  
  6. struct televizio{
  7. unsigned int ar;
  8. int gyartas;
  9. double ertekeles;
  10. unsigned int szelesseg;
  11. };
  12.  
  13. struct televizio* lefoglal(unsigned int meret){
  14. struct televizio* tomb = (struct televizio*)malloc(sizeof(struct televizio)*meret);
  15. return tomb;
  16. }
  17.  
  18. void nemkell(struct televizio* a){
  19. free(a);
  20. }
  21.  
  22. void beolvas(struct televizio* a){
  23. scanf("%u %i %lf %u", &a->ar, &a->gyartas, &a->ertekeles, &a->szelesseg);
  24. }
  25.  
  26. void tombotkiir(struct televizio tomb[], int meret){
  27. for(int i=0;i<meret;i++){
  28. printf("%u %i %.2lf %u\n", tomb[i].ar, tomb[i].gyartas, tomb[i].ertekeles, tomb[i].szelesseg);
  29. }
  30. }
  31.  
  32. #define PART2
  33. int osszeszamol(struct televizio tomb[], int meret, int szam){
  34. int szamlalo = 0;
  35. for(int i=0;i<meret;i++){
  36. if(tomb[i].gyartas > szam){
  37. szamlalo++;
  38. }
  39. }
  40. return szamlalo;
  41. }
  42.  
  43. #define PART3
  44. struct televizio* minkeres(struct televizio tomb[], int meret){
  45. int max=0;
  46. for(int i=0;i<meret;i++){
  47. if(tomb[i].gyartas < tomb[max].gyartas)
  48. max = i;
  49. }
  50. return &tomb[max];
  51. }
  52.  
  53. void feladat4(struct televizio tomb[], int meret){
  54. struct televizio csere;
  55. for(int j=0;j<meret;j++){
  56. for(int i=0;i<meret;i++){
  57. if(tomb[i].szelesseg > tomb[i+1].szelesseg){
  58. csere = tomb[i];
  59. tomb[i] = tomb[i+1];
  60. tomb[i+1] = csere;
  61. }
  62. }
  63. }
  64.  
  65. for(int j=0;j<meret;j++){
  66. for(int i=0;i<meret;i++){
  67. if(tomb[i].szelesseg == tomb[i+1].szelesseg){
  68. if(tomb[i].ar > tomb[i+1].ar)
  69. csere = tomb[i];
  70. tomb[i] = tomb[i+1];
  71. tomb[i+1] = csere;
  72. }
  73. }
  74. }
  75. }
  76.  
  77. /*Készíts egy feladat4 függvényt, amely megkap egy televízió tömböt és annak méretét.
  78. A függvény rendezze a tömb elemeit felbontás szélessége szerint növekvő, sorrendbe.
  79. Azonosság esetén az legyen előrébb, amelyikben a(z) ár addattag értéke nagyobb.
  80. Ha az is megegyezik, akkor mindegy (nem lesz olyan).*/
  81.  
  82. //itt a vége
  83. int main()
  84. {
  85. printf("\n--START OF PART1--\n");
  86. unsigned int meret;
  87. scanf("%u", &meret);
  88. struct televizio *tomb;
  89. tomb=lefoglal(meret);
  90. unsigned int i;
  91. for (i=0; i<meret; i++)
  92. {
  93. beolvas(&tomb[i]);
  94. }
  95. tombotkiir(tomb, meret);
  96.  
  97. printf("\n--END OF PART1--\n");
  98.  
  99. #ifdef PART2
  100. printf("\n--START OF PART2--\n");
  101. unsigned int talalatokSzama=osszeszamol(tomb, meret, 1997);
  102. printf("%u\n", talalatokSzama);
  103. printf("\n--END OF PART2--\n");
  104. #endif
  105.  
  106. #ifdef PART3
  107. printf("\n--START OF PART3--\n");
  108. struct televizio *szelso=minkeres(tomb, meret);
  109. printf("%u ", szelso->ar);
  110. printf("%d ", szelso->gyartas);
  111. printf("%.2lf ", szelso->ertekeles);
  112. printf("%u\n", szelso->szelesseg);
  113. printf("\n--END OF PART3--\n");
  114. #endif
  115.  
  116. #ifdef PART4
  117. printf("\n--START OF PART4--\n");
  118. // Lemásoljuk, hogy ne az eredetit babráljuk
  119. struct televizio *tombFeladat4=lefoglal(meret);
  120. for (i=0; i<meret; i++)
  121. tombFeladat4[i]=tomb[i];
  122. // A rendezés
  123. feladat4(tombFeladat4, meret);
  124. // A megjelenítés
  125. tombotkiir(tombFeladat4, meret);
  126. nemkell(tombFeladat4);
  127. printf("\n--END OF PART4--\n");
  128. #endif
  129.  
  130. #ifdef PART5
  131. printf("\n--START OF PART5--\n");
  132. // Lemásoljuk, hogy ne az eredetit babráljuk
  133. struct televizio *tombFeladat5=lefoglal(meret);
  134. for (i=0; i<meret; i++)
  135. tombFeladat5[i]=tomb[i];
  136. // Az újrafoglalás
  137. unsigned int mennyivel;
  138. scanf("%u", &mennyivel);
  139. feladat5(&tombFeladat5, &meret, mennyivel);
  140. // A bekérés
  141. for (i=meret-mennyivel; i<meret; i++)
  142. {
  143. beolvas(&tomb[i]);
  144. }
  145. // A megjelenítés
  146. tombotkiir(tombFeladat5, meret);
  147. nemkell(tombFeladat5);
  148. printf("\n--END OF PART5--\n");
  149. #endif
  150.  
  151. printf("\n--START OF PART1--\n");
  152. nemkell(tomb);
  153. printf("\n--END OF PART1--\n");
  154.  
  155. return 0;
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement