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

[C++] tablica stopni na radiany

Ostatnio zmodyfikowano 2016-01-02 15:35
Autor Wiadomość
WhitenNerdy
Temat założony przez niniejszego użytkownika
[C++] tablica stopni na radiany
» 2016-01-02 03:09:27
Witam. Mam problem z programem do przeliczania tablicy stopni na radiany.
Kompiluje się ale przy podaniu n = 10 program przestaje działać, przy n = 5 działa normalnie.

Kod:
C/C++
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <iomanip>
#include <math.h>

using namespace std;

float tablica( float * tab, int & N )
{
    cout << "Podaj liczbe elementow: ";
    cin >> N;
    for( int i = 1; i <= N; i++ )
         tab[ i ] =( rand() /( float ) RAND_MAX *(( M_PI * 2 ) - 0 ) + 0 );
   
}

float wypisz( float * tab, int N )
{
    cout << endl;
    for( int i = 1; i <= N; i++ )
         cout << i << "= " << tab[ i ] << endl;
   
}

float licz( float * tab, int N )
{
    for( int i = 1; i <= N; i++ )
         tab[ i ] = tab[ i ] *( 180 / M_PI );
   
}



int main( int argc, char ** argv )
{
    int N = 0;
    float * tab = new float[ N ];
    srand( time( NULL ) );
    tablica( tab, N );
    cout << "\nRadiany:\n";
    wypisz( tab, N );
    licz( tab, N );
    cout << "\nStopnie:\n";
    wypisz( tab, N );
   
    return 0;
    system( "pause" );
   
}
P-142677
mateczek
» 2016-01-02 05:36:50
C/C++
int N = 0;
float * tab = new float[ N ];
Zadeklarowałeś tablice o zerowym rozmiarze !!!

C/C++
float tablica( float * tab, int & N ) // twoja funkcja nic nie zwraca to daj void zamiast float
{
    cout << "Podaj liczbe elementow: ";
    cin >> N; // jako parametr funkcji przekazujesz rozmiar tablicy N. dlaczego go wczytujesz ponownie z klawiatury??  
    for( int i = 1; i <= N; i++ )
         tab[ i ] =( rand() /( float ) RAND_MAX *(( M_PI * 2 ) - 0 ) + 0 );
   
}



No chyba że chciałeś zrobić tak !!!
C/C++
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <iomanip>
#include <math.h>

using namespace std;

float * tablica( int & rozmiar )
{
    cout << "Podaj liczbe elementow: ";
    cin >> rozmiar;
    float * tab = new float[ rozmiar ];
    for( int i = 1; i <= rozmiar; i++ )
         tab[ i ] =( rand() /( float ) RAND_MAX *(( M_PI * 2 ) - 0 ) + 0 );
   
    return tab;
   
}

void wypisz( float * tab, int N )
{
    cout << endl;
    for( int i = 1; i <= N; i++ )
         cout << i << "= " << tab[ i ] << endl;
   
}

void licz( float * tab, int N )
{
    for( int i = 1; i <= N; i++ )
         tab[ i ] = tab[ i ] *( 180 / M_PI );
   
}



int main()
{
    int N = 0;
    srand( time( NULL ) );
    float * tab = tablica( N );
    cout << "\nRadiany:\n";
    wypisz( tab, N );
    licz( tab, N );
    cout << "\nStopnie:\n";
    wypisz( tab, N );
    delete[] tab;
}
P-142678
WhitenNerdy
Temat założony przez niniejszego użytkownika
» 2016-01-02 15:35:38
Dzięki wielkie, nie zauważyłem tego. Jest jeszcze jeden błąd w pętlach for, powinny odliczać od 0. Teraz wszystko działa.
P-142701
« 1 »
  Strona 1 z 1