Dimitrija

Laboratoriski ISPITNI - 16 SP UPDATED

Jan 5th, 2021 (edited)
603
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #define MAX 100
  3.  
  4. /*
  5. За еден природен број а велиме дека е порамнување на друг природен број b ако и само ако цифрите еднакви на 9 во бројот b се заменети со цифрата 7 во бројот а.
  6.  
  7. Пример. Бројот 734775 е порамнување на бројот 934795.
  8.  
  9. Од стандарден влез се внесуваат непознат број на цели броеви (не повеќе од 100), се додека не се внесе нешто што не може да се интерпретира како цел број.
  10.  
  11. Ваша задача е да ги отпечатите најмалите 5 од порамнувањата на сите внесени броеви, по редослед од најмалиот кон најголемиот.
  12.  
  13. Забелешка: Доколку се внесат помалку од 5 броеви, тогаш печатите толку броеви колку што се соодветно внесени.
  14.  
  15. Наоѓањето на порамнувањето на даден број треба да се реализира во посебна рекурзивна функција poramnet(int a).
  16.  
  17. Пример.
  18.  
  19. За броевите: 9592, 69403, 100007, 6, 987, 6977, 33439,
  20.  
  21. треба да се најдат нивните порамнувања ( тоа се: 7572, 67403, 100007, 6, 787, 6777 и 33437, соодветно),
  22.  
  23. и да се отпечатат најмалите 5 од нив по овој редослед: 6 787 6777 7572 33437.
  24.  
  25. ЗАБРАНЕТО е користење на глобални променливи.
  26.  
  27. For example:
  28.  
  29. Input
  30. 5
  31. 6
  32. 8
  33. 9
  34. 9
  35. 9
  36. 9
  37. y
  38.  
  39. Result
  40. 5 6 7 7 7
  41.  
  42. */
  43.  
  44.  
  45.  
  46.  
  47.  
  48. int poramnet(int broj){
  49.  
  50.     if (broj < 10){
  51.         if (broj%10 == 9){
  52.             return 7;
  53.         }
  54.         else{
  55.             return broj;
  56.             }
  57.        
  58.     }
  59.  
  60.     int sum = poramnet(broj/10);
  61.     if (broj%10 == 9){
  62.         return sum*10 + 7;
  63.     }
  64.     else{
  65.         return sum*10 + broj%10;
  66.     }
  67. }
  68.  
  69.  
  70. void sort(int *niza, int n){
  71.  
  72.     int i,j,temp;
  73.     for (i=0;i<n;i++){
  74.         for (j=0;j<n-1-i;j++){
  75.             if (*(niza+j) > *(niza+j+1)){
  76.                 temp = *(niza+j);
  77.                 *(niza+j) = *(niza+j+1);
  78.                 *(niza+j+1)= temp;
  79.                
  80.                
  81.             }
  82.        
  83.        
  84.         }
  85.     }
  86.  
  87. }
  88.  
  89.  
  90. int main(){
  91.  
  92.     int n=0,i,niza[MAX],broj;
  93.     while(scanf("%d",&broj)){
  94.           niza[n] = poramnet(broj);
  95.           n++;
  96.        
  97.     }
  98.    
  99.    
  100.     sort (niza,n);
  101.    
  102.     if (n>5){
  103.         n = 5;
  104.     }
  105.    
  106.     for (i=0;i<n;i++){
  107.      printf("%d ",niza[i]);
  108.     }
  109.    
  110.         return 0;
  111.    
  112.  
  113. }
RAW Paste Data