Program liczacy pole trojkata/jezyk C

0

Witam,
Chce napisac program liczacy pole trojkata ktory dodatkowo bedzie:
1)sprawdzal czy pobrane liczby sa wieksze od 0 (tutaj probowalam sprawdzanie dla wyniku czy jest wiekszy od 4, gdyz nie wiem jak zabrac sie za pobrane liczby)
2)pobieral dane z pliku
3)obliczanie dla wiekszej ilosci danych (ten punkt pominelam, gdyz nie wiem jak sie za niego zabrac)
4)rownanie obliczone w postaci funkcji

Moj program:

 #include<stdio.h>

#include<stdlib.h>

#include<math.h>


//trokajt

trojkat (int a, int h)

{float g=0;
g=(a*h)/2;

}


main()

{FILE* f;
float a, h;


f=fopen("dane","r");

while(!feof(f));

{fscanf(f, "%f %f", &a,&h);


printf("Pole trojkata to %.2f\n", a*h/2);

fclose(f);

return 0;

}


{
int wynik=(a*h)/2;

scanf("%d", &wynik);

if (wynik>4)

printf("Pole trojkata %d jest wieksze od 4\n",wynik);

else

printf("Pole trojkata %d jest mniejsze lub rowne 4\n",wynik);

return 0;

}


}

Bardzo prosze o pomoc

0

Zacząć od byle kursa C, po jego przeczytaniu będziesz przynajmniej umieć napisać sensownie post z prośbą o pomoc.

0

Zformatowałem:

 
#include<stdio.h>
#include<stdlib.h>
#include<math.h>


//trokajt

trojkat (int a, int h)
{
    float g = 0;
    g = (a*h)/2;

}


main()
{
    FILE* f;
    float a, h;


    f=fopen("dane","r");

    while(!feof(f));
    {
        fscanf(f, "%f %f", &a,&h);
        printf("Pole trojkata to %.2f\n", a*h/2);
        fclose(f);
        return 0;
    }

    {
        int wynik=(a*h)/2;
        scanf("%d", &wynik);
        if (wynik>4)
         printf("Pole trojkata %d jest wieksze od 4\n",wynik);
        else

        printf("Pole trojkata %d jest mniejsze lub rowne 4\n",wynik);
        return 0;
    }
}

I teraz tak:

trojkat (int a, int h) 

http://we.pb.edu.pl/~jforenc/2012_2013_02/INF1_07Z.pdf

while(!feof(f));
    {
        fscanf(f, "%f %f", &a,&h);
        printf("Pole trojkata to %.2f\n", a*h/2);
        fclose(f);
        return 0;
    } 

Nie wiem co Ci daje ten średnik po while(!feof(f)).
http://cpp0x.pl/kursy/Kurs-C++/Poziom-3/Petla-while/354
Polecam też się zapoznać z:
Return
Break

A teraz o programie.

 
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

///funkcja obliczajaca pole trojkata zwracajaca wartosc typu double/float/int
///http://we.pb.edu.pl/~jforenc/2012_2013_02/INF1_07Z.pdf

int main()
{
    int wynik, a, h;
    ///otworzenie pliku
    ///http://www.fizyka.umk.pl/~grochu/wiki/doku.php?id=zajecia:jpr:zajecia10
    ///http://grafika.weii.tu.koszalin.pl/c/w10.pdf
    
    ///petla "while"/"do while" odczytujaca liczby z pliku i zapisujaca je do zmiennych a, h
    ///http://cpp0x.pl/kursy/Kurs-C++/Poziom-3/Petla-while/354
    {
        wynik = ///wywołanie funkcji obliczajacej pole trojkata wykorzystujac jako argumenty a, h
        
        ///sprawdzenie zmiennej wynik za pomocą instrukcji if()
        ///http://mikrokontrolery.blogspot.com/2011/02/if-warunkowa-instrukcja-sterujaca.html

        ///warunek kończący petlę jeżeli uzywasz while(). Poczytaj o:
        ///http://4programmers.net/C/Break
    }
    ///zamkniecie pliku
}
Jesli czegoś nie rozumiesz, pisz.
2

Funkcja musi mieć zadeklarowany typ zwracany. Przed C89 był to domyślnie int (w takim trybie - sprzed 27 lat - musisz kompilować, bo inaczej kompilacja by się zakończyła błędem). Jeśli funkcja zwracająca typ inny niż void nie ma instrukcji return to jest to UB (wyjątek: main w C99 i C11). Także to też do poprawy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1