siemes Temat założony przez niniejszego użytkownika |
Trzy pytania osoby początkującej » 2008-06-07 19:04:08 1) kiedy pisze się na końcu "endl" a kiedy się nie pisze, bo mi wszystko działa i bez tego, czy jest jakaś różnica 2) jaka jest różnica między biblioteką <iostream> a <iostream.h> (osobiście używam tej drugiej). 3) dostałem zadanie o takiej treści : Napisz program wczytujący dla podanej liczby n ciąg liczb długości n oraz znajdujący równocześnie min. i max element tego ciągu (w sensie że po jednym przejściu tablicy ma znajdować min. i max.) Napisałem następujący program (oczywiście pododawałem biblioteki). int i, N, max = 0, min = 1001; cout << "Podaj dlugosc ciagu.\n"; cin >> N; int * ciag = new int[ N ]; srand( time( NULL ) ); for( i = 0; i < N; i++ ) { ciag[ i ] = rand() %( 1000 ); cout << ciag[ i ] << endl; } for( i = 0; i < N; i++ ) if( ciag[ i ] < min ) { min = ciag[ i ]; } else if( ciag[ i ] > max ) { max = ciag[ i ]; } cout << "maksymalna z powyzszych liczb to " << max << endl; cout << "minimalna z powyzszych liczb to " << min << endl;
I mam pytanie czy ten program spełnia kryterium znalezienia min. i max przy jednym przejściu? bo nie znam się za bardzo i nie wiem czy przegląda tą tablicę raz czy 2 razy. Z góry dziękuję za pomoc |
|
DejaVu |
» 2008-06-07 19:58:47 endl -> przenosi kursor w konsoli na początek nowego wiersza for( i = 0; i < N; i++ ) if( ciag[ i ] < min ) { min = ciag[ i ]; } else if( ciag[ i ] > max ) { max = ciag[ i ]; }
Jedno przejście = jedno wykonanie pętli for dla całej tablicy danych => czyli masz dobrze :) |
|
siemes Temat założony przez niniejszego użytkownika |
zamienianie systemów » 2008-06-08 11:44:59 mam napisany kod żeby program zamieniał mi system dziesiątkowy na dowolny system od dwójkowego do 16stkowego char rozwin[ 11 ]; int n, s, p = 0; char cyfra[] = "0123456789ABCDEF"; cout << "Podaj liczbe: \n "; cin >> n; cout << "W jakim systemie (od 2 - dwojkowego do 16-snastkowego) ma byc podana liczba zapisana: \n"; cin >> s; while( n != 0 ) { rozwin[ p ] = n % s; n = n / s; p++; } cout << "Wynik zapisany cyframi w systemie" << s << ": \n"; for( int i = p; i > 0; i-- ) cout << cyfra[ rozwin[ i - 1 ] ];
, chciałbym jedynie wiedzieć po co w tym kodzie (co oznacza) pierwsza linijka char rozwin[11] bo mam ten program spisany, co nam to definiuje? |
|
DejaVu |
» 2008-06-08 12:08:04 |
|
siemes Temat założony przez niniejszego użytkownika |
» 2008-06-08 14:18:49 bardziej chodziło mi do czego te 11 się tyczy ?, ale doszedł poważniejszy problem jak obliczyć wartość symbolu Newtona, bo mam 2 programy i żaden nie działa (nawet te z neta), wpisuję wartości i po wpisaniu wartości kończy mi program (bibliotek mam na zapas ;) ) #include<iostream.h> #include<math.h> #include <conio.h> #include<stdlib.h> #include<ctime> using namespace std; int newton( int, int );
int main() { int k, d; cout << " Podaj k : "; cin >> k; cout << "Podaj d : "; cin >> d; cout << " (k po d)= " << newton( k, d ) << endl; return 0; }
int newton( int k, int d ) { if( k == d || d == 0 ) return 1; else return newton( k - 1, d - 1 ) + newton( k - 1, d ); getch(); return( 0 ); } ---------------------------------------- z kolei drugi #include<iostream.h> #include<math.h> #include <conio.h> #include<stdlib.h> #include<ctime> using namespace std; int newton( int n, int k ) { if( n == k || k == 0 ) { return 1; } else { return newton( n - 1, k - 1 ) + newton( n - 1, k ); } } int main() { int n, k; cout << "podaj n oraz k.\n"; cin >> n >> k; cout << "(n po k) = " << newton( n, k ) << endl; getch(); return( 0 ); } i żaden nie wylicza mi wartości, gdzie jest błąd? |
|
DejaVu |
Symbol Newtona » 2008-06-08 14:40:46 Twoja funkcja nie jest zabezpieczona przed niepoprawnymi danymi i w efekcie pętliła się w nieskończoność. Funkcja powinna wyglądać np. tak: int newton( int n, int k ) { if( k > n ) return( - 1 ); if( n == k || k == 0 ) { return 1; } else { return newton( n - 1, k - 1 ) + newton( n - 1, k ); } } |
|
siemes Temat założony przez niniejszego użytkownika |
» 2008-06-08 15:33:16 Mam zadanie : Napisać program wczytujący 2 liczby jako ciąg znaków a następnie dodający je pisemnie. Jak to zwalczyć? |
|
DejaVu |
» 2008-06-08 23:29:25 Wczytaj do dwóch zmiennych typu std::string tekst (liczby), a następnie do nowej zmiennej (też typu std::string), wykonaj dodawanie pisemne dla dwóch wczytanych liczb. Dodawanie pisemne wykonuj od końca cyfra po cyfrze. |
|
« 1 » 2 |