PRC Temat założony przez niniejszego użytkownika |
Zmiana typu wyniku » 2018-05-22 07:51:17 Cześć, Program ma za zadanie:w tablicy posiadającej m wierszy i n kolumn przechowywać dane o energii elektrycznej pobranej w ciągu jednego roku (rok ma mieć 4 miesiace), wiersze- odbiorcy, kolumny- miesiące, należy: obliczyć średnią energię pobraną w ciągu jednego miesiąca. Mój program wygląda tak (musi wykorzystywać tablice): #include <stdio.h> #include <math.h>
int main() { int n = 53, i, j, a = 0, b = 0; printf( "podaj liczbe uzytkownikow \n" ); int tab2[ 4 ]; scanf( "%d", & n ); int tab[ n ][ 4 ]; for( i = 0; i != n; i++ ) { for( j = 0; j != 4; j++ ) { printf( "energia uzywtkownika %d w miesiacu %d \n", i + 1, j + 1 ); scanf( "%d", & tab[ i ][ j ] ); } } for( j = 0; j != 4; j++ ) { for( i = 0; i != n; i++ ) { tab2[ j ] = tab2[ j - 1 ] + tab[ i ][ j ]; } tab2[ j ] = tab2[ j ] / n; printf( "w miesiacu numer %d srednie zuzycie energii wynosi %d \n", j + 1, tab2[ j ] ); } getch(); return 0; system( "PAUSE" ); }
Wszystko działa, tylko problemem jest to że wynik ma być zmiennoprzecinkowy, a tutaj zawsze zwraca liczby bez przecinka np.: (1+2)/2=1, a ma być (1+2)=1,5, wiem że to głupie i proste, ale nie wiem jak to zrobić, bo kiedy wymieniam tablice i jej parametry na float to nie działa (opcjonalnie się wyłącza), a nie udało mi znaleźć żadnych sensowych wskazówek. |
|
michal11 |
» 2018-05-22 10:08:22 Musisz użyć float albo double bo te typu służą do operacji na liczbach niecałkowitych. Jeżeli coś ci po zmianie nie działa to rozwiąż tamten problem. |
|
PRC Temat założony przez niniejszego użytkownika |
» 2018-05-22 10:48:36 Teraz wygląda tak: #include <stdio.h> #include <math.h>
int main() { int n, i, j; printf( "podaj liczbe uzytkownikow \n" ); double tab2[ 4 ]; scanf( "%d", & n ); double tab[ n ][ 4 ]; for( i = 0; i != n; i++ ) { for( j = 0; j != 4; j++ ) { printf( "energia uzywtkownika %d w miesiacu %d \n", i + 1, j + 1 ); scanf( "%d", & tab[ i ][ j ] ); } } for( j = 0; j != 4; j++ ) { for( i = 0; i != n; i++ ) { tab2[ j ] = tab2[ j ] + tab[ i ][ j ]; } tab2[ j ] = tab2[ j ] / n; i = 0; printf( "w miesiacu numer %d srednie zuzycie energii wynosi %d \n", j + 1, tab2[ j ] ); } getch(); return 0; system( "PAUSE" ); }
i zwraca jakieś kosmiczne liczby, kompletnie nie wiem czemu :\ |
|
darko202 |
» 2018-05-22 12:17:05 |
|
PRC Temat założony przez niniejszego użytkownika |
» 2018-05-23 22:45:48 Dzięki :) już mi się udało naprawić, to może też coś nie tak z moim komputerem, bo kiedy na nim odpaliłem poprawiony program to dalej nie dizałał, a na zajęciach już tak. Przepraszam za problem i jestem wdzięczny za pomoc :) |
|
« 1 » |