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

[lekcja 19 zadanie] problem z kompilacja

Ostatnio zmodyfikowano 2011-10-10 20:38
Autor Wiadomość
lelu0
Temat założony przez niniejszego użytkownika
[lekcja 19 zadanie] problem z kompilacja
» 2011-10-07 17:18:51
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int wylosujLiczby( int tablica, int a, int b, int c )
{
    int index = 0;
    do {
        tablica[ inde ] =( rand() % c ) + b;
        index++;
    } while( index < a );
   
    return tablica;
}
int wypiszLiczby( int tablica, int y )
{
    do {
        cout << "liczba to: " << tablica[ y ] << endl;
        y--;
    } while( y >= 0 );
   
}

int main()
{
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 7 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}

Dlaczego w tym kodzie przy próbie kompilacji dostaje komunikat:
error: invalid types 'int[int]' for array subscipt
 ??
P-41808
malan
» 2011-10-07 17:33:33
C/C++
int index = 0;
//...
tablica[ inde ] =( rand() % c ) + b;
P-41809
ison
» 2011-10-07 17:36:27
ponieważ 'tablica' to nie tablica
C/C++
int wylosujLiczby( int tablica, int a, int b, int c )
{
    int index = 0;
    do {
        tablica[ inde ] =( rand() % c ) + b;
        index++;
    } while( index < a );
   
    return tablica;
}
P-41810
lelu0
Temat założony przez niniejszego użytkownika
» 2011-10-07 17:47:15
zmieniłem kod tak:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int wylosujLiczby( int tablica[], int a, int b, int c )
{
    int index = 0;
    do {
        tablica[ index ] =( rand() % c ) + b;
        index++;
    } while( index < a );
   
    return tablica;
}
int wypiszLiczby( int tablica[], int y )
{
    do {
        cout << "liczba to: " << tablica[ y ] << endl;
        y--;
    } while( y >= 0 );
   
}
int obliczSume( int a, int b )
// ....

int main()
{
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 7 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}

i dostaje coś takiego: http://imageshack.us/photo/my-images/43/79697284.png/
P-41811
pekfos
» 2011-10-07 17:52:25
bo masz złe wartości zwracane.
P-41812
lelu0
Temat założony przez niniejszego użytkownika
» 2011-10-07 18:01:57
Ok, dzięki, pozostała do napisania funkcja sumująca, do niej też pewnie będę miał pytania bo średnio mam pomysł, ale jeszcze spróbuje sam ;)
--------------------------
Tak jak mówiłem, jest problem. A mianowicie jako sume wpisuje mi losowa liczbe. Czemu?
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int wylosujLiczby( int tablica[], int a, int b, int c )
{
    int index = 0;
    do {
        tablica[ index ] =( rand() % c ) + b;
        index++;
    } while( index < a );
   
    return tablica[ 999 ];
}
int wypiszLiczby( int tablica[], int y )
{
    do {
        cout << "liczba to: " << tablica[ y ] << endl;
        y--;
    } while( y >= 0 );
   
}
int obliczSume( int a[], int b )

{
    int s;
   
    do {
        s + a[ b ];
        b--;
       
       
    } while( b >= 0 );
   
    return s;
}

int main()
{
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 7 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}
P-41813
malan
» 2011-10-08 01:29:14
int s;
 - temu.
» Kurs C++ » Poziom 1Pojęcie zmiennej i podstawowe typy danych lekcja

s + a[ b ];
? O czymś zapomniałeś.
P-41828
lelu0
Temat założony przez niniejszego użytkownika
» 2011-10-08 15:48:16
zmieniłem na
C/C++
int obliczSume( int a[], int b )

{
    int s;
   
    do {
        s = s + a[ b ];
        b--;
       
       
    } while( b >= 0 );
   
    return s;
}
....
i nie bardzo wiem co dalej jest nie tak...
P-41844
« 1 » 2
  Strona 1 z 2 Następna strona