#include #include //Dawid Lower //Pierwszy zestaw zadań - Zadania z języka C. //Zadanie 1. //Napisz funkcję odwracającą n-elemntową tablicę liczb całkowitych: void inverse(int *tab, int n). void inverse(int *tab, int rozmiar){ int i, temp; for(i=0 ; i<(rozmiar-1)/2 ; i++){ temp=tab[i]; tab[i]=tab[rozmiar-1-i]; tab[rozmiar-1-i]=temp; } } //Zadanie 2. //Zadeklarować strukturę reprezentującą lcizby zeespolone oraz napisać funkcję dodającą dwie takie liczby. Funkcja ma przyjmować jako argumenty liczby zespolone oraz zawracać wynik również w postaci zespolonej). typedef struct _zesp{ float re; float im; }zesp; zesp dodajZespolone(zesp z1, zesp z2){ zesp z3; z3.re = z1.re + z2.re; z3.im = z1.im + z2.im; return z3; } //Zadanie 3. //Napisać funkcję podnoszącą dowoloną liczbę całkowitą a do potęgi n będącej również liczbą całkowitą. Funkcja ma zwracać wynik potęgowania. (Bez użycia funkcji pow!). float power(int podstawa, float wykladnik){ float wynik = 1; int i; for (i=0 ; i maksimum) maksimum = tab[i]; if (tab[i] < minimum) minimum = tab[i]; } wynik.max = maksimum; wynik.min = minimum; return wynik; } //Zadanie 5. /*Napisać funkcję sprawzdzającą czy podana liczba całkowita jest parzysta. Funkcja ma zwracać wartość 1 jeśli liczba jest parzysta, natomiast 0 jeśli liczba jest nieparzysta.*/ int parzysta(int a){ int wynik; if ((a%2) != 0) wynik = 0; else wynik = 1; return wynik; } //Zadanie 6. /*Napisać funkcję sprawdzającą czy podana jako parametr liczba a jest elementem tablicy liczb całkowitych tab. Funkcja powinna zwracać: -1 – jeśli liczba nie znajduje się w tablicy, indeks liczby w tablicy – jeśli tylko jedna liczba a znajduje się w tablicy tab, indeks pierwszego wystąpienia – jeśli w tablicy tab jest kilka liczb a.*/ int sprawdz(int *tab, int n, int a){ int i, firstI; for (i = 0; i < n ; i++){ if (tab[i] == a){ firstI = i; return firstI; } else return -1; } } //Zadanie 7. /*Napisać funkcję przepisującą tablicę liczb całkowitych tab do innej tablicy liczb całkowitych tab2, o tej samej liczbie elementów n. Dodatkowo każda liczba mniejsza od zera z tablicy tab powinan być przepisana jakao zero do tab2.*/ int przepisz(int *tab, int *tab2, int n){ int i; for (i = 0; i < n ; i++){ tab2[i] = tab[i]; if (tab2[i] < 0) tab2[i] = 0; } } //Zadanie 8. /*Napisz funkcję obliczającą średnią arytmetyczną z elementów tablicy liczb całkowitych. Tablica posiada n liczb całkowitych.*/ double srednia(int *tab, int n){ int suma, i; for (i = 0; i < n ; i++) suma += tab[i]; return suma/n; } //Zadanie 9. /*Palindrom jest to wyraz, który czytany od tylu jest taki sam jak czytany od przodu, np. kajak. Napisz funkcję sprawdzającą czy w tablicy znaków zapisany jest palindrom. Funkcja ma zwracać wartość 1 jeśli w tablicy znaków jest palindrom lub 0 w przeciwnym wypadku.*/ int palindrom(char *tab, int n){ int i, wynik, j; for (i = 0, j = n-1 ; i < j ; i++, j--){ if (tab[i] != tab[j]) break; } if (i < j) return wynik = 0; else return wynik =1; } //Zadanie 10. /*Napisać funkcję max_znak zwracającą znak najczęściej występujący w pliku f oraz wartość wystąpienia tego znaku.*/ char max_znak(FILE *userfile, int *n){ char znak; int znakAsInt; int counter = 0; int i,temp, temp2; int tab[200] = {}; while (!feof(userfile)){ znak = fgetc(userfile); tolower(znak); znakAsInt = (int)znak; tab[znakAsInt]++; } for (i=97 ; i<123 ; i++) { temp = tab[i]; if (temp >= temp2){ temp2 = temp; counter = i; } } znak = (char)counter; return znak; } int main(){ return 0; }