Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] error: illegal use floating point.

Ostatnio zmodyfikowano 2012-09-26 12:41
Autor Wiadomość
MisieQ90
Temat założony przez niniejszego użytkownika
[C++] error: illegal use floating point.
» 2012-09-25 14:39:48
Witam. zalozenie programowe bylo takie zeby utworzyc macierz 5x5 i pozniej z niej wektor wg wzoru: B=(k*Ai i)/ wartosc srednia. K jest podawane z klawiatury. wlasnie za wzorkiem w pliku macierz.cpp wyrzuca mi blad. Ogólnie rzecz biorac z programowania jestem noga ale załącze tu listing tego pliku macierz.cpp.

C/C++
#include "macierz.h"
#include <iostream>
using namespace std;

void WCZYTAJ_MACIERZ( MACIERZ A )
{
    cout << "uzupelnij dane do macierzy";
   
    for( int i = 0; i < N; ++i ) {
        for( int j = 0; j < M; ++j )
        {
            cout << "A[" << i + 1 << "]" << "[" << j + 1 << "]= ";
            cin >> A[ i ][ j ];
        }
    }
}
void WYSWIETL_MACIERZ( MACIERZ A )


{
    for( int i = 0; i < N; ++i ) {
        for( int j = 0; j < M; ++j )
        {
            cout << A[ i ][ j ] << " ";
        }
        cout << endl;
    }
   
}

float srednia( MACIERZ A )

{
    int suma = 0;
    for( int i = 0; i < N; ++i )
    {
        for( int j = 0; j < N; ++j )
       
             suma += A[ i ][ j ];
       
    } return suma / N;
}


void WCZYTAJ_WEKTOR( MACIERZ A, WEK B, float k )

{ for( int i = 0; i < N; ++i )
   
         B[ i ] =( k * A[ i ][ i ] ) / srednia; <---Tutaj, w tej linijce pokazuje b ł ą d.
   
}


void WYSWIETL_WEKTOR( WEK B )
{
    for( int i = 0; i < M; ++i ) {
        cout << B[ i ] << endl;
    }
   
}
Proszę o pomoc. Wszystko mi się juz miesza a chcialbym wiedzieć co jest zrobione źle. Błąd brzmi: illegal use floating point.
Pozdrawiam
resztę listingów tez moge podesłać.
P-65508
SeaMonster131
» 2012-09-25 15:13:12
Błąd jest dlatego ponieważ funkcja srednia przyjmuje 1 argument
float srednia( MACIERZ A )
. A Ty zrobiłeś tylko
B[ i ] =( k * A[ i ][ i ] ) / srednia;
P-65509
MisieQ90
Temat założony przez niniejszego użytkownika
» 2012-09-25 15:20:36
Zaraz nie kumam juz z tego nic... moze mi ktos napisać jak to ma wyglądac i wytłumaczyć "jak krowie na rowie"?
Spokoju mi to nie daje.
Poprawiłem:

void WCZYTAJ_WEKTOR(MACIERZ A,WEK B,float k,float srednia)

 { for(int i=0;i<N;++i)

 B[ i] [0] = (k*A)/srednia;

}

Prawie działa: Podaje parametr k, dane do macierzy i elegancko macierz tworzy a za chwile tylo.. program znajduje problem...
Prosze o pomoc
P-65511
grizzPL
» 2012-09-26 12:41:28
Musisz podać argument do funkcji srednia().
P-65574
« 1 »
  Strona 1 z 1