Advertisement
josiftepe

Untitled

Nov 16th, 2022
780
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.49 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5.     // zadaca kolega
  6.    
  7.     // na pocetokot vnesuvame eden cel broj od tastatura, ke go krstime N
  8.     int N;
  9.     scanf("%d", &N);
  10.    
  11.     // kolega na ovoj broj e ako gi zememe site cifri sto se ednakvi na 5 i gi zamenuvame so 6. Ama na krajot od tekstot ni vika deka ako brojot NE sodrzi najmalku 2 cifri koi se ednakvi na 5 togas treba da ispecatime greska
  12.     // zatoa prvo proveruvame kolku od cifrite se ednakvi na 5
  13.    
  14.     // za da proverime kolku od cifrite se ednakvi na 5, mora prvo da gi izvadime istite
  15.    
  16.     // bidejki brojot e cetiricifren moze da go pretstavime kako ABCD, tako sto A e prvata cifra, B e vtorata....
  17.     // ke napravime 4 posebni integeri, za da gi izvadime site cifri posebno
  18.    
  19.     int prva_cifra = N / 1000;
  20.     // bilo koj cetiricifren broj ako go podelam so 1000 ke ni ja vrati prvata cifra, primer: 4567 / 1000 = 4, i 4 e prvata cifra
  21.    
  22.     int vtora_cifra = (N / 100) % 10;
  23.     // za da ja izvadam vtorata cifra od brojot potrebno e brojot da go podelam sto 100 4567 / 100 = 45, i na brojot 45 ni treba poslednata cifra
  24.     // posledna cifra dobivame taka sto go zimame ostatokot pri delenje so 10, odnosno modul od 10, taka sto (4567 / 100) % 10 = 45 % 10 = 5
  25.     int treta_cifra = (N / 10) % 10;
  26.     // za da izvadime tretata cifra, potrebno e brojot da go podelime so 10: 4567 / 10 = 456, i od toa da ja izvadime poslednata cifra, (4567 / 10) % 10 = 456 % 10 = 6
  27.     int cetvrta_cifra = N % 10;
  28.     // poslednata cifra ja zimame so modul od 10
  29.    
  30.     // sega cim gi znaeme cifrite na brojot treba da izbroime kolku od niv se ednakvi na 5
  31.     // toa se pravi so if
  32.    
  33.     int brojac_na_cifri_ednakvi_na_5 = 0;
  34.     if(prva_cifra == 5) {
  35.         brojac_na_cifri_ednakvi_na_5++; // go zgolemuvame za 1
  36.     }
  37.     if(vtora_cifra == 5) {
  38.         brojac_na_cifri_ednakvi_na_5++; // go zgolemuvame za 1
  39.     }
  40.     if(treta_cifra == 5) {
  41.         brojac_na_cifri_ednakvi_na_5++; // go zgolemuvame za 1
  42.     }
  43.     if(cetvrta_cifra == 5) {
  44.         brojac_na_cifri_ednakvi_na_5++; // go zgolemuvame za 1
  45.     }
  46.    
  47.     // ako imame pomalce od 2 cifri koi se ednakvi na 5, togas mora da ispecatime greska
  48.     if(brojac_na_cifri_ednakvi_na_5 < 2) {
  49.         printf("ERROR\n"); // greskata vo zadacata ni e pretstavena kako error
  50.         return 0; // ja zavrsuvame programata bidejki ne moze da prodolzime so istata
  51.     }
  52.    
  53.     // sega treba sekoja cifra sto e ednakva na 5, da ja pretvorime vo 6
  54.     if(prva_cifra == 5) {
  55.         prva_cifra = 6;
  56.     }
  57.     if(vtora_cifra == 5) {
  58.         vtora_cifra = 6;
  59.     }
  60.     if(treta_cifra == 5) {
  61.         treta_cifra = 6;
  62.     }
  63.     if(cetvrta_cifra == 5) {
  64.         cetvrta_cifra = 6;
  65.     }
  66.     // sega gi imame cifrite od brojot i treba da go napravime kolega brojot
  67.     // bidejki imame 4 cifri, moze da gi pretstavime  kako ABCD, brojot se razlovuva na 1000 * A + 100 * B + 10 * C + 1 * d
  68.     int kolega = 1000 * prva_cifra + 100 * vtora_cifra + 10 * treta_cifra + 1 * cetvrta_cifra;
  69.     // so ova go imame napraveno kolega brojot
  70.    
  71.     // treba da vidime za kolku procenti e pogolem i ja koristime formulata za toa
  72.    
  73.     float procenti = (float) (100 * kolega - 100 * N) / (float) N;
  74.     // koga racuname nekoj broj koj ke e decimalen, mora site broevi vo presmetkata da ni se float
  75.    
  76.     printf("%f%%", procenti); // so %f pecatam float, a ako sakame da go ispecatime znakot za procenti %, mora da koristam %%
  77.    
  78.    
  79.    
  80.     return 0;
  81.  
  82. }
  83.  
  84.  
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement