• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja zmieniająca wartości zmiennych z konsoli

Object Storage Arubacloud
0 głosów
556 wizyt
pytanie zadane 23 stycznia 2019 w C i C++ przez thekibi27 Bywalec (2,110 p.)

Cześć,

chciałbym napisać funkcję, która zmieni mi wartości kilku (w tym przypadku dwóch) zmiennych, o które to wartości spyta użytkownika. Zarys takiego programu:

 

void zmienwartosci(int a, int b)
{
   scanf("%d", &a);
   scanf("%d",&b);
}

main()
{
   int a;
   int b;

   zmienwartosci(a,b);

}

Niestety w takiej konwencji (kod jest poglądowy, nie gotowy do kompilacji) program w dalszej fazie działania nie korzysta z nowych wartości zmiennych. Teoretycznie nie zostały one zwrócone, jednak w tym wypadku trzeba by zwrócić dwie wartości.

Sens takiej funkcji jest taki, że podczas działania mojego programu wielokrotnie będę pytał użytkownika o "aktualną" wartość a i b, po wykonaniu się jakiegoś innego kodu.

2 odpowiedzi

0 głosów
odpowiedź 23 stycznia 2019 przez manjaro Nałogowiec (37,390 p.)
wybrane 24 stycznia 2019 przez thekibi27
 
Najlepsza

W funkcji przy zmiennych musisz dać ampersandy

#include <iostream>
using namespace std;

void zmienwartosci(int &a, int &b){
   scanf("%d",&a);
   scanf("%d",&b);
}

int main(){
   int a;
   int b;

   zmienwartosci(a,b);
   cout << a << " " << b<< endl;

   return 0;
}

 

komentarz 23 stycznia 2019 przez RafalS VIP (122,820 p.)
Kod C++, a wszystko sugeruje, że autor pyta o język C (tag i scanf)
komentarz 23 stycznia 2019 przez manjaro Nałogowiec (37,390 p.)
1. To jest dział C/C++ więc napisałem w C++ bo autor nie określił.

2. scanf w c++ używa się również

3. Autor jest na tyle inteligentny że przerobi sobie co trzeba jeśli isttonie chodzi mu o C

4. Czepiasz się niepotrzebnie o głupotę?
1
komentarz 23 stycznia 2019 przez RafalS VIP (122,820 p.)
Czepiam się właśnie dlatego, że nie przerobi tak łatwo, bo w C nie da się przekazać argumentów przez referencje :P

Można wskaźnikami, ale gdyby autor o tym wiedział to by nie pytał :P
komentarz 23 stycznia 2019 przez manjaro Nałogowiec (37,390 p.)
A to wybacz, zwracam honor. W takim razie ma to duże znaczenie.

Tylko wypadałoby żeby jednak autor się określił teraz ;)
komentarz 24 stycznia 2019 przez thekibi27 Bywalec (2,110 p.)
Chodziło mi o język C, stąd właście zapis scanf/printf a nie cin/cout
komentarz 24 stycznia 2019 przez manjaro Nałogowiec (37,390 p.)

To masz na wskaźnikach 


void zmienwartosci(int *a, int *b){
   scanf("%d",a);
   scanf("%d",b);
}

int main(){
   int a;
   int b;
   zmienwartosci(&a,&b);

}

 

komentarz 24 stycznia 2019 przez thekibi27 Bywalec (2,110 p.)
Dzięki, o to mi chodziło
komentarz 24 stycznia 2019 przez manjaro Nałogowiec (37,390 p.)
A tak z ciekawości dlaczego akurat C?
komentarz 26 stycznia 2019 przez thekibi27 Bywalec (2,110 p.)
Studia :)
–1 głos
odpowiedź 23 stycznia 2019 przez Snejki Stary wyjadacz (14,520 p.)
Użyj wskaźników
komentarz 23 stycznia 2019 przez thekibi27 Bywalec (2,110 p.)
W jaki sposób?

Podobne pytania

0 głosów
1 odpowiedź 231 wizyt
pytanie zadane 26 marca 2017 w JavaScript przez Mimoid Użytkownik (760 p.)
0 głosów
1 odpowiedź 735 wizyt
pytanie zadane 28 września 2015 w SQL, bazy danych przez MrMock Bywalec (2,890 p.)
0 głosów
1 odpowiedź 175 wizyt

92,555 zapytań

141,404 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...