zad1. wczytać boki trójkąta i sprawdzić czy można z nich zbudować trójkąt.
zad2. wczytać boki trójkąta i sprawdzić czy jest to trójkąt prostokątny.
zad3. wczytać liczby z pliku i obliczyć średnią z liczb parzystych
#include <stdio.h>
#include <stdlib.h>
Â
void srednia(void);
Â
main()
{
    srednia();
    return 0;
}
Â
void srednia(void)
{
    int p, i=0, s=0;
    FILE *plik;
Â
    plik=fopen("nazwa", "rb");
    while(fread(&p, sizeof(int), 1, plik)==1)
        if(p%2==0)
        {
            s+=p;
            i++;
        }
Â
    printf("Srednia z liczb parzystych wynosi %g\n", (double)s/i);
Â
    fclose(plik);
}
zad4. program wczytuje liczby a b c dopóki spełniają warunek twierdzenia pitagorasa i wypisuje która to przyprostokątna, przeciwprostokątna i pole trójkąta
zad.5
#include <stdio.h>
#include <stdlib.h>
Â
main()
{
    int a, b, c;
Â
    while(1)
    {
        printf("Podaj dlugosc boku a: ");
        scanf("%d", &a);
        printf("Podaj dlugosc boku b: ");
        scanf("%d", &b);
        printf("Podaj dlugosc boku c: ");
        scanf("%d", &c);
       Â
        if(a<=0 || b<=0 || c<=0)
        {
            printf("\nDlugosc boku nie moze byc liczba ujemna.\n\n");
            break;
        }
        else if(a*a+b*b==c*c)
            printf("\nPrzyprostokatna nr1 = %d\nPrzyprostokatna nr2 = %d\nPrzeciwprostokatna = %d\nPole trojkata = %g\n\n", a, b, c, (double)a*b/2);
        else if(a*a+c*c==b*b)
            printf("\nPrzyprostokatna nr1 = %d\nPrzyprostokatna nr2 = %d\nPrzeciwprostokatna = %d\nPole trojkata = %g\n\n", a, c, b, (double)a*c/2);
        else if(b*b+c*c==a*a)
            printf("\nPrzyprostokatna nr1 = %d\nPrzyprostokatna nr2 = %d\nPrzeciwprostokatna = %d\nPole trojkata = %g\n\n", b, c, a, (double)b*c/2);
        else
        {
            printf("\nTo nie jest trojkat prostokatny.\n\n");
            break;
        }
    }
Â
    system("PAUSE");
    return 0;
zad5. odczytac z pliku binarnego liczby i znaleźć maksimum
#include <stdio.h>
#include <stdlib.h>
Â
int maksi(void)
{
    FILE *plik = fopen("liczby", "r");
    int maks = 0, m1 = 0;
    if(plik)
    {
        while (fread(&m1, 4,1,plik)==1)
            if(m1 > maks)
                maks = m1;
    }
    else
       Â
    {
        printf("Plik nie istnieje");
    }
    return maks;
ï‚· npisac program ktoy zwroci tablice typu int przechowjaca indeksy w ktorych wystepuje znak z w lancuchu lan. (mialo byc bez maina, ale dla demonstracji dalem tez maina)
Â
#include <stdio.h>
#include <stdlib.h>
Â
int* indeks(char *lan, char z, int *ilosc);
Â
int main(void)
{
    int ilosc = 0, *ptr = NULL, i = 0;
    char lan[31] = "lubiekopacdolkipodinnymiludzmi";
    char z = 'o';
Â
    ptr = indeks(lan, z, &ilosc);
    printf("Znak %c wystapil pod indeksami \n", z);
    for(i; i<ilosc; i++)
        printf("%d ", *(ptr + i));
    getchar();
    return 0;
}
Â
int* indeks(char *lan, char z, int* ilosc)
{
    int i = 0, *p = NULL, j =0;
    for(i =0; *(lan+i) != '\0'; i++)
    {
        if(*(lan+i) == z)
        {
            p = (int*)realloc(p, (j+1)*sizeof(int));
            *(p+j) = i;
            j++;
        }
    }
Â
    *ilosc = j;
    return p;
}
program 1: sprawdzic zczy podany punkt lezy na obwodzie kola o srodku xs, ys i promieniu r.
Â
#include <math.h>
Â
int main(void)
{
    int xs=0, ys=0, xp=0, yp=0;
    double r=0, l=0;
    while(1)
    {
        printf("Podaj wspolrzedne srodka kola: ");
        fflush(stdin);
        scanf("%d %d", &xs, &ys);
        printf("Podaj promien: ");
        fflush(stdin);
        scanf("%lf", &r);
        printf("Podaj wspolrzedne punktu: ");
        fflush(stdin);
        scanf("%d %d", &xp, &yp);
        l = sqrt((double)(xs-xp)*(xs-xp) + (ys-yp)*(ys-yp));
        if(l==r)
        {
            printf("\nPunkt o wspolrzednych (%d,%d) lezy na obwodzie kola o srodku (%d,%d) i promieniu r = %lf\n", xp,yp,xs,ys,r);
        }
        else
        {
            printf("\nPunkt o wspolrzednych (%d,%d) nie lezy na obwodzie kola o srodku (%d,%d) i promieniu r = %.2lf\n", xp,yp,xs,ys,r);
            break;
        }
    }
    return 0;
}
Funkcja wczytuje liczby do momentu podania 0, na biezaco realokuje pamiec, liczby parzyste zapisuje zdublowane, nieparzyste pojedynczo. Notacja wskaznikowa.
*/
#include <stdio.h>
#include <stdlib.h>
Â
int* liczby(void);
Â
main()
{
    int *wsk=NULL;
Â
    wsk=liczby();
Â
    free(wsk);
   Â
    system("PAUSE");
    return 0;
}
Â
int* liczby(void)
{
    int *p=NULL;
    int i=0, j;
Â
    p=(int*)malloc((i+1) *sizeof(int));
    do
    {
        fflush(stdin);
        scanf("%d", p+i);
        if(*(p+i)==0)
            break;
        else if(*(p+i)%2==0)
        {
            i++;
            p=(int*)realloc(p, (i+2) *sizeof(int));
            *(p+i)=*(p+i-1);
            i++;
        }
        else
        {
            i++;
            p=(int*)realloc(p, (i+1) *sizeof(int));
            *(p+i)=*(p+i);
        }
Â
    }
    while(1);
Â
    j=i;
    for(j=0 ; j<i ; j++)
        printf("%d\n", *(p+j));
Â
    return p;
}
/* Rozboj 30.01.2013, zad.1b
Program wypisuje gwiazdki w postaci:
---*
--**
-***
--**
---*
Zalozylem wiec, ze liczba wierszy musi byc liczba nieparzysta
*/
#include <stdio.h>
#include <stdlib.h>
Â
main()
{
    int i, j, h, n;
Â
    do
    {
        printf("Podaj liczbe wierszy: ");
        scanf("%d", &n);
    }
    while(n%2==0);
Â
    h=n/2+1;
Â
    for(i=1 ; i<n/2+1 ; i++, h--)
    {
        for(j=h ; j>0 ; j--)
            printf("-");
        for(j=i ; j>0 ; j--)
            printf("*");
        printf("\n");
    }
Â
Â
    for(i=n/2+1 ; i>0 ; i--, h++)
    {
        for(j=0 ; j<h ; j++)
            printf("-");
        for(j=i ; j>0 ; j--)
            printf("*");
        printf("\n");
    }
Â
    system("PAUSE");
    return 0;
}
/* Rozboj 30.01.2013, zad.1a
Program wypisuje gwiazdki w postaci:
*
**
***
**
*
zalozylem wiec, ze liczba wierszy musi byc liczba nieparzysta
*/
#include <stdio.h>
#include <stdlib.h>
Â
main()
{
    int i, j, n;
Â
    do
    {
        printf("Podaj liczbe wierszy: ");
        scanf("%d", &n);
    }
    while(n%2==0);
Â
    for(i=1 ; i<n/2+1 ; i++)
    {
        for(j=i ; j>0 ; j--)
            printf("*");
        printf("\n");
    }
Â
Â
    for(i=n/2+1 ; i>0 ; i--)
    {
        for(j=i ; j>0 ; j--)
            printf("*");
        printf("\n");
    }
Â
    system("PAUSE");
    return 0;
}
Zad 1: Napisac program ktory w zaleznosci od podanego znaku (t/T, n/N) wypisze na ekran wyraz tak/nie. w przypadku innego
Â
znaku, program ma wyswietlic "bledny znak" i przerwac wykonanie.
Â
#include <stdio.h>
#include <stdlib.h>
Â
int main(void)
{
    char c = '\0';
    while(1)
    {
        printf("Podaj znak: ");
        fflush(stdin);
        c= getchar();
        if(c == 't' || c == 'T')
            printf("tak");
        else if(c == 'n' || c == 'N')
            printf("nie");
        else
        {
            printf("zly znak!");
            break;
        }
    }
    getchar();
    return 0;
}
Â
zad 2: napisac funkcje ktora zwraca lancuch znakow wypelniony liczbami. wykonanie funkcji ma sie zakonczyc po podaniu
Â
kropki '.', na koncu lancucha dodac symbol konca lancucha: '\0' Â (nullterminator). (napisac sama funkcje, bez maina. maina
Â
dodalem zeby zademonstrowac dzialanie).
Â
#include <stdio.h>
#include <stdlib.h>
Â
char * cyfry(void);
Â
int main(void)
{
    printf("%s", cyfry());
    fflush(stdin);
    getchar();
    return 0;
}
Â
char *cyfry(void)
{
    char c = '\0', *ptr = NULL;
    int i = 0;
    while(1)
    {
        printf("\nPodaj znak: ");
        fflush(stdin);
        c = getchar();
        if(c >= '0' && c <= '9')
        {
            ptr = (char*)realloc(ptr, (i+1)*sizeof(char));
            *(ptr + i) = c;
            i++;
        }
        else if (c == '.')
        {
            break;
        }
    }
    *(ptr+i) = '\0';
    return ptr;
}
Â
zad 3: Funkcja ma zapisywac do pliku binarnego liczby parzyste, wieksze od zera. po podaniu liczby mniejszej od zera,
Â
funkcja ma przerwac dzialanie, zamknac plik itd. (bez funkcji wypisz, dodalem ja zeby zademstrowac dzialanie;
Â
#include <stdio.h>
#include <stdlib.h>
Â
void liczby(void);
void wypisz(void);
Â
int main(void)
{
    liczby();
    wypisz();
    fflush(stdin);
    getchar();
    return 0;
}
Â
void wypisz(void)
{
    FILE * plik = fopen("liczby", "r");
    int liczba = 0;
    if(plik != NULL)
    {
        while (fread(&liczba, sizeof(int), 1, plik) == 1)
        {
            printf("%d", liczba);
        }
        fclose(plik);
    }
}
Â
void liczby(void)
{
    FILE *plik = fopen("liczby", "w");
    int liczba = 0;
    while(1)
    {
        printf("Podaj liczbe: ");
        scanf("%d", &liczba);
        if(liczba % 2 == 0 && liczba > 0)
            fwrite(&liczba, sizeof(int), 1, plik);
        else if(liczba < 0)
            break;
    }
    fclose(plik);
}