Czy da się oeprować na nazwach zmiennych w funkcji.
Ostatnio zmodyfikowano 2011-01-08 18:17
jsc Temat założony przez niniejszego użytkownika |
Czy da się oeprować na nazwach zmiennych w funkcji. » 2011-01-08 14:33:48 Założmy, że mamy taki kod: #include <iostream>
using namespace std;
static int porow_a = 0; //Bez tego i tak się rozwalą się wyniki static int porow_b = 0; static int porow_c = 0;
void wypisz_po_cyfrze (int liczba_a) for (int i = 1000000; i >= 1; i /= 10) //Coś na kształt rekurencji { if (i > liczba_a) { continue; }
porow_a = porow_a * 10; cout <<( liczba_a / i ) - porow_a; porow_a = liczba / i; }
void wypisz_po_cyfrze (int liczba_b) for (int i = 1000000; i >= 1; i /= 10) //Coś na kształt rekurencji { if (i > liczba_b) { continue; }
porow_b = porow_b * 10; cout <<( liczba_b / i ) - porow_b; porow_a = liczba_b / i; }
void wypisz_po_cyfrze (int liczba_c) for (int i = 1000000; i >= 1; i /= 10) //Coś na kształt rekurencji { if (i > liczba_c) { continue; }
porow_c = porow_c * 10; cout <<( liczba_c / i ) - porow_c; porow_c = liczba_c / i; }
main () { int a, b, c; for (a = 2; a <= 10; ++a) { wypisz_po_cyfrze (a); b = a + 11; wypisz_po_cyfrze (b); c = a * 11; wypisz_po_cyfrze (c); }
Moje pytanie brzmi: czy da się jakoś operować na nazwach przyjmowanych przez funkcję zmiennych, np. jako argument zrobię int liczba i gdy będę wywoływał, to odpowiedni kodzik podmieni nazwy liczba i porow odpowiednio na a i porow_a? |
|
SeaMonster131 |
» 2011-01-08 14:39:14 Po 1. napisz temat postu, a po 2. kod daj w [ code src="C++" ] ... [ /code ] lub [ cpp ] ... [ /cpp ]
(bez spacji) :) |
|
pekfos |
» 2011-01-08 15:03:29 lub w [cpp] [/cpp]. żadnych spacji :) |
|
michalp |
» 2011-01-08 15:05:23 Nie da się z prostego powodu - to nie ma sensu. |
|
jsc Temat założony przez niniejszego użytkownika |
» 2011-01-08 16:34:44 Może się nie da. Ale uciekam od powtarzania tego samego fragmentu kodu, tylko po to aby zmienić nazwy zmiennych w wariantach do wyboru: void wypisz_po_cyfrze( int liczba_a, powtorz_a ) { for( int i = 1000000; i >= 1; i /= 10 ) { if( i > liczba_a ) { continue; } porow_a = porow_a * 10; cout <<( liczba_a / i ) - porow_a; porow_a = liczba / i; } }
lub int zmienna;
void wypisz_po_cyfrze( int liczba, int zmienna ) { switch( zmienna ) case 0 : for( int i = 1000000; i >= 1; i /= 10 ) { if( i > liczba_a ) { continue; } porow_a = porow_a * 10; cout <<( liczba_a / i ) - porow_a; porow_a = liczba / i; } break; case 1: for( int i = 1000000; i >= 1; i /= 10 ) { if( i > liczba_b ) { continue; } porow_b = porow_b * 10; cout <<( liczba_b / i ) - porow_b; porow_b = liczba_b / i; } break; default: for( int i = 1000000; i >= 1; i /= 10 ) { if( i > liczba_c ) { continue; } porow_c = porow_c * 10; cout <<( liczba_c / i ) - porow_c; porow_c = liczba_c / i; } break; }
|
|
michalp |
» 2011-01-08 16:42:07 Użyj referencji. |
|
jsc Temat założony przez niniejszego użytkownika |
» 2011-01-08 17:38:39 Znacząco ułatwia pracę z takimi funkcjami, ale przy wywołaniu trzeba podać 2 argumenty, a chciałbym tylko 1. Mimo to dzięki. |
|
malan |
» 2011-01-08 18:17:53 Dlaczego dwa?
/edit: Już wiem ;p. Zawsze możesz zrobić strukturę... |
|
« 1 » |