Advertisement
Mandrah

zad4cw13

Dec 17th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdlib>
  4. #include <stdlib.h>
  5. #include <string>
  6. using namespace std;
  7.  
  8.  
  9. main()
  10. {
  11. ifstream plik;
  12. plik.open("input.txt");
  13.  
  14. string linia;
  15. int countNumbers = 0, countLetters = 0, countOther = 0;
  16.  
  17. while (plik >> linia)
  18. {
  19.     for (int i=0; i<linia.length(); i++)
  20.     {
  21.         if (isdigit(linia[i])) // else if (linia[i] => '0' && linia[i] =< '9')
  22.             countNumbers++;
  23.         else if (isalpha(linia[i])) // równie dobrze else if((linia[i] => 'a' && linia[i] =< 'z')&&(linia[i] => 'A' &&linia[i] =< 'Z'))
  24.             countLetters++;
  25.         else if (isprint(linia[i])) // analogicznie jak wyżej tylko dla wszystkich znaków specjalnych
  26.             countOther++;
  27.     }
  28.     cout << linia << endl;
  29. }
  30. plik.close();
  31.  
  32. cout << endl << "Wystapienia liczb: " << countNumbers << endl << "Wystapienia liter: " << countLetters << endl << "Wystapienia innych drukowalnych znakow: " << countOther << endl << endl;
  33.  
  34. double procent;
  35. procent = (double)countNumbers / (countNumbers + countLetters + countOther);
  36. cout << "Liczby stanowia " << procent*100 << "% danych wejsciowych." << endl;
  37.  
  38. procent = (double)countLetters / (countNumbers + countLetters + countOther);
  39. cout << "Litery stanowia " << procent*100 << "% danych wejsciowych." << endl;
  40.  
  41. procent = (double)countOther / (countNumbers + countLetters + countOther);
  42. cout << "Pozostale znaki stanowia " << procent*100 << "% danych wejsciowych." << endl;
  43.  
  44. return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement