SHOW:
|
|
- or go back to the newest paste.
| 1 | #include <stdio.h> | |
| 2 | #include <stdlib.h> | |
| 3 | #include <string.h> | |
| 4 | /*Napisz funkcję przyjmującą napis i zwracającą liczbę par znaków (parą nazywamy | |
| 5 | dwa sąsiadujące jednakowe znaki lub litery bez względu na ich wielkość). Przykład: | |
| 6 | wejście wyjście | |
| 7 | baa → 1 | |
| 8 | bbaaac → 3 | |
| 9 | AabBb → 3 | |
| 10 | ||
| 11 | */ | |
| 12 | int funkcja(char *napis){
| |
| 13 | int pary=0; | |
| 14 | int i=0; | |
| 15 | int roznica = 'a'-'A'; // sprawdzamy ile znakow dzieli duza literke od malej | |
| 16 | if(roznica<0){ // jesli waartosc jest ujemna to robimi zeby byla dodatnia
| |
| 17 | roznica=roznica*(-1); | |
| 18 | } | |
| 19 | do{
| |
| 20 | /*zrobimy zeby wszystkie literki byly male - bedzie latwiej xd*/ | |
| 21 | ||
| 22 | if( ((int)napis[i] == (int)napis[i+1]) || ((int)napis[i]+roznica == (int)napis[i+1]) || ((int)napis[i] == (int)napis[i+1] + roznica )) // sprawdzamy trzy wersje 1 - jesli obie litery sa takiej samej wielkosci 2. jesli pierwsza jest inna od drugiej 3. jesli druga jest inna od pierwszej | |
| 23 | pary++; | |
| 24 | i++; | |
| 25 | }while(napis[i] != '\0'); | |
| 26 | ||
| 27 | return pary; | |
| 28 | } | |
| 29 | ||
| 30 | int main() | |
| 31 | {
| |
| 32 | printf("%i\n",funkcja("baa"));
| |
| 33 | printf("%i\n",funkcja("bbaaac"));
| |
| 34 | printf("%i\n",funkcja("AabBb"));
| |
| 35 | return 0; | |
| 36 | } |