język C,tablice.program

piasektt
Użytkownik
Użytkownik
Posty: 195
Rejestracja: 14 paź 2007, o 20:59
Płeć: Mężczyzna
Lokalizacja: MM
Podziękował: 29 razy

język C,tablice.program

Post autor: piasektt »

Witam
Mam napisać taki program:
W tablicy posiadającej n wierszy i m kolumn przechowywane są dane o energii elektr.pobranej w przeciągu jednego roku. Poszczególne wiersze odpowiadają poszczególnym odbiorcom,kolumny-miesiącom. Należy określić miesiąc, w którym całkowita pobrana energia jest największa.

P.S.
Kompilator wskazuje błąd w ostatniej linijce( na klamrze za return 0)

Kod: Zaznacz cały

#include <stdio.h>
#define LMIES 4
#define LODB  3

int main()
{
float energia [LODB][LMIES],suma[LMIES];
int i,j,t;
float max;
{
for(i=0;i<LODB;i++)
for(j=0;j<LMIES;j++)
{
printf("
 Podaj zuzycie energii odb %d w mies %d: ",i+1,j+1);
scanf("%f",&energia [i][j]);
}
for(j=0;j<LMIES;j++)
{
suma[j]=0;
}
for(i=0;i<LMIES;i++)
for(j=0;j<LODB;j++)
{
suma[j]=suma[j]+ energia[i][j];
}
max=suma[0];
for(j=0;j<LMIES;j++)
{
if(suma[j]<max)
{
max=suma[j];
t=j;
}
printf("

W miesiacu %d pobranie energii bylo najwieksze

",t+1);

   system("PAUSE");
   return 0;
}

Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

język C,tablice.program

Post autor: miki999 »

Nie znam się dobrze na programowaniu, ale 1., co się rzuca w oko:
Ukryta treść:    
W 20-25 linijce to samo. Chyba że jednak to jest poprawne.

Nie masz klamry zamykającej do ostatniego for-a (albo if-a). No i sam warunek powinien być chyba na odwrót (suma[j]>max).


Pozdrawiam.
abc666

język C,tablice.program

Post autor: abc666 »

Zamykanie pojedynczych instrukcji w klamry nie jest konieczne
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

język C,tablice.program

Post autor: miki999 »

Ale otwieranie bez powodu klamry przed for-em i nie zamykanie jej również musi skutkować błędem



Pozdrawiam.
piasektt
Użytkownik
Użytkownik
Posty: 195
Rejestracja: 14 paź 2007, o 20:59
Płeć: Mężczyzna
Lokalizacja: MM
Podziękował: 29 razy

język C,tablice.program

Post autor: piasektt »

Wprowadziłem Twoje zmiany,ale wciąż ten sam kłopot.
Xitami

język C,tablice.program

Post autor: Xitami »

O czym świadczy brak wcięć?
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

język C,tablice.program

Post autor: miki999 »

Xitami pisze:O czym świadczy brak wcięć?
O niedbalstwie?

U mnie takie coś działa:

Kod: Zaznacz cały

#include <stdio.h>
#define LMIES 4
#define LODB  3

int main()
{
float energia [LODB][LMIES],suma[LMIES];
int i,j,t;
float max;
    for(i=0;i<LODB;i++)
    {
        for(j=0;j<LMIES;j++)
        {
            printf("
 Podaj zuzycie energii odb %d w mies %d: ",i+1,j+1);
            scanf("%f",&energia [i][j]);
        }
    }    
    for(j=0;j<LMIES;j++)
    {
      suma[j]=0;
    }
    for(i=0;i<LMIES;i++)
    {
        for(j=0;j<LODB;j++)
        {
          suma[j]=suma[j]+ energia[i][j];
        }
    }
    max=suma[0];
    for(j=0;j<LMIES;j++)
    {
        if(suma[j]<max)
        {
            max=suma[j];
            t=j;
        }
    }
printf("

 W miesiacu %d pobranie energii bylo najwieksze

",t+1);

   system("PAUSE");
   return 0;
}
Porównaj ze swoim.



Pozdrawiam.
Xitami

język C,tablice.program

Post autor: Xitami »

Przepisałem kod podany przez miki999@, ale nie chce się kompilować, czemu?

Kod: Zaznacz cały

#include <stdio.h>
#define _ 4
#define _o  3
#define OO "
 Podaj zuzycie energii odb %d w mies %d: "
#define O0 "

 W miesiacu %d pobranie energii bylo najwieksze

"
int main() {float _O[_o][_],_0[_];int o,O,Oo;float o0;for(o=0;o<_o;o
++)for(O=0;O<_;O++){printf(OO,o+1,O+1);scanf("%f",&_O[o][O]);}for(O=
0;O<_;O++ )_0[O]=0;for(o=0;o<_;o++)for(O=0;O<_o;O++)_0[O]=_0[O]+_O[o
][O];o0=_0[0];for(O=0;O<_;O++)if(_0[O]<o0){o0=_0[O];Oo=O;}printf(O0,
Oo+1);system("PAUSE");return 0;}
Ostatnio zmieniony 23 maja 2010, o 19:55 przez Xitami, łącznie zmieniany 2 razy.
Awatar użytkownika
miki999
Użytkownik
Użytkownik
Posty: 8691
Rejestracja: 28 lis 2007, o 18:10
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 36 razy
Pomógł: 1001 razy

język C,tablice.program

Post autor: miki999 »

Jeżeli tak przepisałeś, to się nie dziwię


Podaj komunikat jaki dostajesz.
piasektt
Użytkownik
Użytkownik
Posty: 195
Rejestracja: 14 paź 2007, o 20:59
Płeć: Mężczyzna
Lokalizacja: MM
Podziękował: 29 razy

język C,tablice.program

Post autor: piasektt »

miki999 dzięki wielkie, program działa!
ODPOWIEDZ