Advertisement
Guest User

Sortiranje

a guest
Jan 18th, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. /*Zadatak 2
  2.  
  3. Napraviti program koji u niz sprema trocifrene brojeve koji su jednaki zbiru kubova svojih cifara (ukupno su četiri takva broja). Zatim napraviti sljedeće funkcije:
  4. - sortiraj – koja će poredati vrijednosti elemenata niza od najvećeg prema najmanjem
  5. - medij – koja nalazi medijan tj. srednji član u sortiranom nizu (budući da se u nizu nalaze četiri elementa, medijan je aritmetička sredina od srednja dva člana).
  6. U glavnom programu je potrebno ispisati sortiran niz te njegov medijan.
  7. */
  8. #include "stdafx.h"
  9. #include <iostream>
  10. #include <iomanip>
  11. using namespace std;
  12. const int length = 4;
  13.  
  14. bool zbirKubova(int x) {
  15. int suma = 0; int mod;
  16. int temp = x;
  17. while (temp != 0) {
  18. mod = temp % 10;
  19. suma += (mod*mod*mod);
  20. temp /= 10;
  21. }
  22. if (suma==x){
  23. return true;
  24. }
  25. return false;
  26. }
  27.  
  28. void niz4(int niz[]){
  29. int brojac = 0;
  30. for (int i = 100; i < 999; i++) {
  31. if (zbirKubova(i)) {
  32. niz[brojac] = i;
  33. brojac++;
  34. }
  35. }
  36. }
  37.  
  38. void ispisNiza4(int niz[]) {
  39. for (int i = 0; i < length; i++){
  40. cout << niz[i] << " ";
  41. }
  42. }
  43.  
  44. void sortiraj(int niz[]) {
  45. int pomocna = 0;
  46. bool promjena = true;
  47. while (promjena) {
  48.  
  49. promjena = false;
  50. for (int i = 0; i < length - 1; i++) {
  51. if (niz[i] < niz[i + 1]) {
  52. pomocna = niz[i];
  53. niz[i] = niz[i + 1];
  54. niz[i + 1] = pomocna;
  55. promjena = true;
  56. }
  57. }
  58. }
  59. }
  60. int medijan(int niz[]) {
  61. int sredina;
  62. int medijan;
  63. sredina = length / 2.0;
  64. if (length % 2 != 0) {
  65. medijan = niz[sredina + 0]/1.0;
  66. }
  67. else {
  68. medijan = (niz[sredina - 1] + niz[sredina] ) / 2.0;
  69. }
  70. return medijan;
  71. }
  72. int main() {
  73.  
  74. int niz[length];
  75. niz4(niz);
  76. cout << "Trocifreni brojevi koji su jednaki zbiru kubova svojih3 cifara su " << endl;
  77. ispisNiza4(niz);
  78. cout << endl;
  79. sortiraj(niz);
  80. cout << "Sortirani niz koji je poredan od najveceg ka najmanjem" << endl;
  81. ispisNiza4(niz);
  82. cout << "Srednji clan u sortiranom nizu je " << medijan(niz);
  83. system("pause > 0");
  84. return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement