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

Dlaczego to nie działa ma być rekurencyjne inne są z pytanikami ale czy mozna to zrobic w takiej formie

Object Storage Arubacloud
0 głosów
77 wizyt
pytanie zadane 1 kwietnia 2020 w C i C++ przez chrystian Gaduła (4,780 p.)
#include<iostream>
#include<cstdlib>
using namespace std;
//Operator warunkowy ?
//(warunek ? true : false)
int nwd(int a, int b)
{
   if(a!=b)
     return nwd(if (a>b) a=a-b; else b = b-a;);
   return a;
}

int main()
{
    int a, b;
    
    cout<<"Podaj dwie liczby: ";
    cin>>a>>b;
    
    cout<<"NWD("<<a<<","<<b<<") = "<<nwd(a,b)<<endl;
     
   
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 1 kwietnia 2020 przez Lisik Początkujący (440 p.)
wybrane 1 kwietnia 2020 przez chrystian
 
Najlepsza
Ponieważ nie używasz schematu (warunek ? true : false)
np. (a==b? a=0 : b=b+1) taki zapis oznacza że jeżeli a jest równe b to w to miejsce wstaw a = 0 a jeżeli a jest różne od b to w to miejsce wstaw b = b + 1
 to miejsce to cały schemat (warunek ? true : false);

zamiast tego próbujesz robić zwykłego if-a

Na razie nie patrz na odpowiedz poniżej, spróbuj zrobić to sam

 

 

 

 

 

 

 

 

 

 

 

nwd((a>b)? a = a-b : b = b-a,(a>b)? b : a);
komentarz 1 kwietnia 2020 przez chrystian Gaduła (4,780 p.)
to widzałem ale chiałem wiedziec czy tak da sie tez zrobic

bo niby ? to warnuek a if tez
komentarz 1 kwietnia 2020 przez Lisik Początkujący (440 p.)

#include<iostream>
#include<cstdlib>
using namespace std;
//Operator warunkowy ?
//(warunek ? true : false)
int funkcja(int a,int b)
{
    if (a>b)    return a=a-b;
    return b = b-a;
}
int funkcja2(int a, int b)
{   
    if (a>b) return b;
    return a; 
}

int nwd(int a, int b)
{
   if(a!=b)
     return nwd(funkcja(a,b),funkcja2(a,b));
   return a;
}
 
int main()
{
    int a, b;
     
    cout<<"Podaj dwie liczby: ";
    cin>>a>>b;
     
    cout<<"NWD("<<a<<","<<b<<") = "<<nwd(a,b)<<endl;
      
    
    return 0;
}

Nie można (możesz zrobić dodatkowe funkcje jak powyżej) ponieważ twoja funkcja nwd prosi cie o dane wartości a i b i to właśnie ich oczekuje w nawiasie.  

Podobne pytania

0 głosów
2 odpowiedzi 2,267 wizyt
0 głosów
1 odpowiedź 193 wizyt

92,573 zapytań

141,423 odpowiedzi

319,647 komentarzy

61,959 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!

...