Dark Temat założony przez niniejszego użytkownika |
Problem ze zmienną i » 2011-01-28 19:50:43 Mam pewien problem ze zmienną ponieważ nie mogę sprawić aby mi wyświetliło liczby z tablicy tylko wyświetla je w nieskończoność i program wywala errora tutaj jest cały kod aplikacji chodzi mi głównie o funkcję wypiszLiczby
#include "stdafx.h"
using namespace std;
void wylosujLiczby( int t[], int i, int poczatek, int koniec ) { int lic = 0; srand( time( NULL ) ); do { t[ i ] =( rand() % koniec ) + poczatek; lic++; } while( lic < i ); }
void wypiszLiczby( int t[], int i ) { int lic = 0; do { cout << "Liczba [ " << i << " ] " << t[ i ] << endl; i++; lic++; } while( lic < 999 ); }
int obliczSume( int t[], int i ) { int suma = 0; int lic = 0; do { suma += t[ i ]; lic++; } while( lic < i ); return suma; }
int main() { int tablica[ 999 ]; wylosujLiczby( tablica, 999, 4, 7 ); wypiszLiczby( tablica, 999 ); int iSuma = obliczSume( tablica, 999 ); cout << "Suma liczba z tablicy wynosi: " << iSuma << endl; system( "pause" ); return 0; } |
|
szyx_yankez |
» 2011-01-28 20:13:51 Tutaj 3 funkcje masz nie poprawnie napisane.
Co do wypiszLiczby:
void wypiszLiczby( int * t, int size ) { for( int i = 0; i < size; ++i ) cout << "Liczba [ " << i << " ] " << t[ i ] << endl; }
Masz poprawiłem Ci niektóre błędy:
#include <cstdlib> #include <iostream> #include <ctime> using namespace std;
void wylosujLiczby( int * t, int size, int poczatek, int koniec ) { for( int i = 0; i < size; ++i ) t[ i ] =( rand() % koniec ) + poczatek; }
void wypiszLiczby( int * t, int size ) { for( int i = 0; i < size; ++i ) cout << "Liczba [ " << i << " ] " << t[ i ] << endl; }
__int64 obliczSume( int * t, int size ) { __int64 suma( 0 ); for( int i = 0; i < size; ++i ) suma += t[ i ]; return suma; }
int main() { srand( time( NULL ) ); int tablica[ 999 ]; wylosujLiczby( tablica, 999, 4, 7 ); wypiszLiczby( tablica, 999 ); __int64 iSuma = obliczSume( tablica, 999 ); cout << "Suma liczba z tablicy wynosi: " << iSuma << endl; system( "pause" ); return 0; }
|
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-01-28 20:34:05 Dzięki za poprawienie widzę, że muszę się jeszcze dużo nauczyć :) |
|
DejaVu |
» 2011-01-28 20:36:39 Nie za bardzo rozumiem czemu mu pętlę do... while zamieniłeś na for ale spoko. Powinieneś mu pokazać błędy, a nie dawać inne rozwiązanie ;p
/edit:
void wypiszLiczby( int t[], int i ) { int lic = 0; do { cout << "Liczba [ " << i << " ] " << t[ i ] << endl; i++; lic++; } while( lic < 999 ); }
|
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-01-28 20:46:33 Poprawiłem kod tak lecz przy wyświetlaniu liczb wyświetla losowe liczby dodatnie i ujemne
void wypiszLiczby( int t[], int i ) { int lic = 0; do { cout << "Liczba [ " << lic << " ] " << t[ lic ] << endl; lic++; } while( lic < i ); }
|
|
szyx_yankez |
» 2011-01-28 20:48:30 Nie za bardzo rozumiem czemu mu pętlę do... while zamieniłeś na for ale spoko. |
Lepiej się do tego nadają, i wg. mnie zwiększają czytelność kodu.
Powinieneś mu pokazać błędy, a nie dawać inne rozwiązanie ;p |
Fakt, miałem napisać ale mnie wyprzedziłeś.
Poprawiłem kod tak lecz przy wyświetlaniu liczb wyświetla losowe liczby dodatnie i ujemne |
Losowanie liczby z przedziału masz źle zaimplementowane. |
|
DejaVu |
» 2011-01-28 20:54:58 Zobacz co napisałeś: t[ i ] = ; - jaka jest wartość zmiennej i? :) |
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-01-28 20:55:59 Znalazłem to co miałem źle proszę o tutaj
void wylosujLiczby( int t[], int i, int poczatek, int koniec ) { int lic = 0; srand( time( NULL ) ); do { t[ lic ] =( rand() % koniec ) + poczatek; lic++; } while( lic < i ); }
i w sumowaniu liczb też znalazłem zło :P
int obliczSume( int t[], int i ) { int suma = 0; int lic = 0; do { suma += t[ lic ]; } while( lic < i ); return suma; }
|
|
« 1 » 2 |