- #include <stdio.h>
- #include <stdlib.h>
- //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<wykladnik; i++){
- wynik = wynik*podstawa;
- }
- return wynik;
- }
- //Zadanie 4.
- //Napisać funkcję przeszukującą n elementową tablicę liczb całkowitych i znajdującą w niej nawjwiększą i najmniejszą liczbę. Liczby mają być zwrócone do programu głównego w postaci struktury
- typedef struct _maxmin{
- int max, min;
- }maxmin;
- maxmin maxminSzukaj(int *tab, int n){
- int maksimum = -214748364, minimum = 214748364;
- int i;
- maxmin wynik;
- for (i = 0; i < n ; i++){
- if (tab[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;
- }