Advertisement
Guest User

Matura2015Zadanie4

a guest
May 23rd, 2015
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.29 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4.  
  5. #define FILE_NAME "liczby.txt"
  6.  
  7. using namespace std;
  8.  
  9. bool ismorezerosthansones(string a){
  10.     int z = 0;
  11.     int o = 0;
  12.     for(int i = 0; a[i]!='\0'; i++){
  13.         if(a[i] == '0') z++;
  14.         if(a[i] == '1') o++;
  15.     }
  16.     return z > o ? true : false;
  17. }
  18.  
  19. bool isdivideby2(string a){
  20.     return a[a.size()-1] == '0' ? true : false;
  21. }
  22.  
  23. bool isdivideby8(string a){
  24.     if(a.size()<3) return false;
  25.     int e = a.size()-1;
  26.     if(a[e] == '0' && a[e-1] == '0' && a[e-2] == '0') return true;
  27.     else return false;
  28. }
  29.  
  30. bool isbigger(string a, string b){ //is a > b
  31.     if(a.size()>b.size()) return true;
  32.     if(a.size()<b.size()) return false;
  33.     for(int p = a.size()-1; p>=0; p--){
  34.         if(a[p] != b[p]){
  35.             if(a[p] == '1') return true;
  36.             else return false;
  37.         }
  38.     }
  39. }
  40.  
  41. //by grzeca
  42. int main(int argc, char* argv[])
  43. {
  44.     int morezerosthansones = 0;
  45.     int divideby2 = 0;
  46.     int divideby8 = 0;
  47.     string minimum = "";
  48.     string maximum = "";
  49.     int minline = 0;
  50.     int maxline = 0;
  51.     int linecounter = 1;
  52.  
  53.     fstream file;
  54.     file.open(FILE_NAME, fstream::in);
  55.  
  56.     if(file.good()){
  57.         while(!file.eof()){
  58.             char buf[255]; file.getline(buf, 255); string num = buf;
  59.             if(ismorezerosthansones(num)) morezerosthansones++;
  60.             if(isdivideby2(num)) divideby2++;
  61.             if(isdivideby8(num)) divideby8++;
  62.             if(isbigger(num,maximum)){ maximum = num; maxline = linecounter; }
  63.             if(isbigger(minimum,num)){ minimum = num; minline = linecounter; }
  64.             linecounter++;
  65.         }
  66.     }
  67.  
  68.     file.close();
  69.  
  70.     cout<<"== Wynik ======================================="<<endl;
  71.     cout<<" Ilosc liczb..."<<endl;
  72.     cout<<"    ktore maja wiecej zer niz jedynek : "<<morezerosthansones<<endl;
  73.     cout<<"    podzielnych przed 2               : "<<divideby2<<endl;
  74.     cout<<"    podzielnych przed 8               : "<<divideby8<<endl;
  75.     cout<<" Najmniejsza liczba to                : "<<minimum<<endl;
  76.     cout<<" Wystapila ona na linii               : "<<minline<<endl;
  77.     cout<<" Najwieksza liczba to                 : "<<maximum<<endl;
  78.     cout<<" Wystapila ona na linii               : "<<maxline<<endl;
  79.     return 0;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement