Skocz do zawartości

Kilka błędów z tablicami w C++


Rekomendowane odpowiedzi

Opublikowano

Mam pętle...:

     for( int i = 0; i < numberCount; i++; )
     {
         double number[i];
         cout << "Podaj wartość " << i << "liczby: ";
         cin >> number[i];

... i 4 błędy:

Pierwszy błąd to średnik w linijce pierwszej, ale nie wiem gdzie go wstawić lub usunąć.

Trzy ostatne błędy są w linijce double number[1];:

1>l:\documents and settings\l\moje dokumenty\visual studio 2008\projects\calc++\calc++\main.cpp(16) : error C2059: syntax error : ';'
1>l:\documents and settings\l\moje dokumenty\visual studio 2008\projects\calc++\calc++\main.cpp(18) : error C2057: expected constant expression
1>l:\documents and settings\l\moje dokumenty\visual studio 2008\projects\calc++\calc++\main.cpp(18) : error C2466: cannot allocate an array of constant size 0
1>l:\documents and settings\l\moje dokumenty\visual studio 2008\projects\calc++\calc++\main.cpp(18) : error C2133: 'number' : unknown size

Opublikowano

1.

for( int i = 0; i < numberCount; i++)

Czyli bez ostatniego średnika

 

2.

Nie mam pojęcia

 

3.

Nie można stworzyć tablicy o rozmiarze 0.

Gdy i jest równe zero to ty próbujesz

double number[0];

 

4.

Głowy sobie uciąć nie dam, ale jak ten wyżej poprawisz to to też pewnie będzie dobrze.

Opublikowano

Rozmiar tablicy number musi być stały (zmienna lokalna). Jeśli chcesz zmienny rozmiar to alokuj tą tablicę dynamicznie.

  • Administratorzy
Opublikowano

double number[numberCount];
for( int i = 0; i < numberCount; i++ )
{
      cout << "Podaj wartość " << i << "liczby: ";
      cin >> number[i];
}

 

Moim skromnym zdaniem. Albo to bedzie jakaś tymczasowa tablica inaczej.

Opublikowano

lol W ogóle nie rozumiem tych tablic. Tablice w C++ są tak np.:

tablica = {

345, 678, 789,

456, 768, 098,

243, 765, 135

}

czy tak:

tablica[0,0] = 345

tablica[1,0] = 678

tablica[2,0] = 789

tablica[0,1] = 456

tablica[1,1] = 768

tablica[2,1] = 098

tablica[0,2] = 243

tablica[1,2] = 765

tablica[2,2] = 135

 

EDIT:Lepiej dam cały kod:

GML
#include <iostream>

#include <math.h>

using namespace std;

int main()

{

float numberCount = 0;

cout << "Podaj ilość liczb w działaniu: ";

cin >> numberCount;

numberCount = ceil(numberCount);

if (numberCount < 2)

{

cout << "Ilość liczb w działaniu musi być większa od 1.";

system("cls");

main();

}

 

for( int i = 1; i < numberCount; i++ )

{

 

cout << "Podaj wartość " << i << "liczby: ";

cin >> number;

Opublikowano
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
     float numberCount = 0;
     cout << "Podaj ilość liczb w działaniu: ";
     cin >> numberCount;
     numberCount = ceil(numberCount);
     if (numberCount < 2)
     {
         cout << "Ilość liczb w działaniu musi być większa od 1.";
         system("cls");
         main();
     }
     
         double * costam=new double[numberCount];
     for( int i = 1; i < numberCount; i++ )
     {
         
         cout << "Podaj wartość " << i << "liczby: ";
         cin >> costam[i];
//robisz cos tam
         }

//zwalniasz pamiec 
delete [] costam;

Opublikowano

Dzięki, kod Willa działa tylko mam 2 mini-pytanka:

Czy jak dam kod: float wynik = StrToFloat("2+2-4") to wyświetli się liczba 0?

W którym headerze jest funkcja StrToFloat?

Opublikowano

Tak myśląc logicznie to StrToFloat("2+2-4") nie zadziała tak jakbyś tego oczekiwał.

 

napisz sobie własną funkcje:

 

 

std::stringstream g_StringStream;

 

float StrToFloat(const string&s1)

{

 

g_StringStream<<s1.c_str();

float l=0;

g_StringStream>>l;

if(!g_StringStream)

{

g_StringStream.clear();

return -1;

}

 

 

return l;

}

  • Administratorzy
Opublikowano

tablica[3] = {345, 678, 789}

to jest inaczej:

tablica[0] = 345
tablica[1] = 678
tablica[2] = 789

a nie to co Ty napisałeś.

  • Administratorzy
Opublikowano

To nie jest czasem Warning a nie Error? Konwertujesz FLOAT (zmiennoprzecinkową) do INT (całkowitej), więc stracisz części dziesiętne (i bodaj zostanie zaokrąglona w dół).

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...