Advertisement
Guest User

Untitled

a guest
Dec 18th, 2017
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1.  
  2. Napisati program koji će korisniku omogućiti unos pozitivnih neparnih cijelih brojeva za koje će se ispitivati
  3. da li im je prva cifra parna (npr. 4993 ili 4999). Ukoliko je zadovoljen uslov broj se smješta u niz od 10 elemenata.
  4. Unos se ponavlja dok se ne popuni niz od 10 elemenata koji zadovoljavaju uslov unosa. Unos se prekida ukoliko korisnik unese vrijednost 0
  5. te se i izvršenje program završava uz poruku „Forsirani prekid“. Zatim se za sve elementi niza ispituje da li je broj prost
  6. i da li ima samo jednu parnu cifru. Ako broj nije prost i ako ima više od jedne parne cifre,
  7. broj se izbacuje iz niza tako što se njegova vrijednost mijenja sa 0.
  8. Na kraju niz sortirati od najvećeg ka najmanjem broju te ga ispisati.
  9. Koristiti odvojene funkcije za provjeru da li je broj prost, za sortiranje i ispis niza.
  10. */
  11. #include "stdafx.h"
  12. #include <iostream>
  13. #include <math.h>
  14. using namespace std;
  15. void ispis(int n[], int v) {
  16. for (int i = 0; i < v; i++) {
  17. cout << n[i] << " ";
  18. }
  19. }
  20. void sortiraj(int n[], int v) {
  21. for (int i = 0; i < v; i++) {
  22. int poz = i;
  23. for (int j = i; j < v; j++) {
  24. if (n[poz] < n[j]) poz = j;
  25. }
  26. int temp = n[poz];
  27. n[poz] = n[i];
  28. n[i] = temp;
  29. }
  30. }
  31. int prc(int broj) {
  32. int bpc = 0;
  33. int cifra;
  34. while (broj != 0) {
  35. cifra = broj % 10;
  36. if (cifra % 2 == 0) bpc++;
  37. broj /= 10;
  38. }
  39. return bpc;
  40. }
  41. bool prost(int broj) {
  42. for (int i = 2; i <= broj / 2; i++)
  43. if (broj%i == 0)
  44. return false;
  45. return true;
  46. }
  47. int main()
  48. {
  49. int broj, clanovi = 0, brojac, temp, kopija, n;
  50. int niz[10];
  51. do {
  52. cin >> broj;
  53. if (broj != 0) {
  54. if (clanovi < 10)
  55. if (broj % 2 != 0) {
  56. temp = broj, kopija = broj;
  57. brojac = 0;
  58. while (temp != 0) {
  59. temp /= 10;
  60. brojac++;
  61. }
  62. n = kopija / pow(10, brojac - 1);
  63. if (n % 2 == 0) {
  64. niz[clanovi++] = broj;
  65. }
  66. }
  67. }
  68. else cout << "Forsirani prekid" << endl;
  69. } while (broj != 0 && clanovi<10);
  70. for (int i = 0; i < clanovi; i++)
  71. if (!prost(niz[i]) && prc(niz[i]) > 1)
  72. niz[i] = 0;
  73. sortiraj(niz, clanovi);
  74. ispis(niz, clanovi);
  75. return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement