Segui il video qui sotto per vedere come installare il nostro sito come web app sulla tua schermata principale.
Nota: Questa funzionalità potrebbe non essere disponibile in alcuni browser.
Pubblicità
if (n=0):suicidio:
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;
int somma(int A[], int n)
{if (n==0)
return 0;
else
return A[n-1] + somma (A, n-1);
}
int main()
{
int n;
cin>>n;
int A[n];
cin>>A[n];
cout<<somma(A, n);
}
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;
int somma(int A[], int n)
{if (n<=0)
return 0;
else
return A[n-1] + somma (A, n-1);
}
int main()
{
int A[6] = {1, 2, 3, 4, 5,6};
int n=6;
cout<<somma(A, n);
}
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;
bool tutti(int A[], int n)
{if (n<=10)
return false;
else
return tutti (A,n-1);
}
int main()
{
int A[6] = {11, 21, 101, 41, 51,61};
int n=6;
cout<<tutti(A, n);
}
Cosi' va, non riesco a farlo con il cin n e cin A[n] nel main come sopra non capisco l'errore...
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;
int somma(int A[], int n)
{
if (n==0)
return 0;
else
return A[n-1] + somma (A, n-1);
}
int main()
{
int n;
cin>>n;
int A[n];
cin>>A[n];
cout<<somma(A, n);
}
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;
bool tutti(int A[], int n)
{
if (n<=10)
return false;
else
return tutti (A,n-1);
}
int main()
{
int A[6] = {11, 21, 101, 41, 51,61};
int n=6;
cout<<tutti(A, n);
}
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;
bool tutti(int A[], int n)
{
if (A[n]<=10)
return false;
else
return tutti (A,n-1);
}
int main()
{
int A[6] = {11, 21, 101, 41, 51,61};
int n=6;
cout<<tutti(A, n);
}
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;
int somma(int A[], int n)
{if (n==0)
return 0;
else
return A[n-1] + somma (A, n-1);
}
int main()
{
int n=7;
int A[n];
for(int i=0; i<n; i++)
{
cin>>A[i];
}
cout<<somma(A, n);
}
Questo ricorsivo non ha molto senso come esercizio.
Comunque stai sbagliando proprio il caso base e la chiamata ricorsiva; non torna mai true quello.
Devi restituire true se tutti gli elementi sono maggiori di 10 (questo implica dover guardare tutti i valori), e false non appena ne trovi anche solo uno che non rispetta il criterio.
Anche il controllo che fai su A[n] non è corretto: nella prima iterazione varrà quanto la dimensione dell'array, e quindi, come nel precedente esercizio, andrebbe a verificare una posizione fuori dai limiti.
Come lo cambieresti? Non voglio darti subito la soluzione, ti suggerisco solo che l'if che utilizzi è corretto (a parte l'indice sbagliato), ma che ne manca un altro (che torni true).
bool tutti(int A[], int n)
{
if(n <= 0)
return true;
if (A[n-1] <= 10)
return false;
return tutti(A, n-1);
}
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;
if (n == 1)
return A[0];
return min(A[n-1], minimo(A, n-1));
}
int main()
{
int A[] = {1, 4, 45, 6, -50, 10, 2};
int n=7;
cout << minimo(A, n);
return 0;
}
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <iostream>
using namespace std;
if (n == 1)
return A[0];
return min(A[n-1], minimo(A, n-1));
}
int massimo(int A[], int n)
{
if (n == 1)
return A[0];
return max(A[n-1], massimo(A, n-1));
}
int main()
{
int A[] = {1, 4, 45, 6, -50, 10, 2};
int n=7;
cout << massimo(A, n);
return 0;
}
:deserto:
C++:bool tutti(int A[], int n) { if(n <= 0) return true; if (A[n-1] <= 10) return false; return tutti(A, n-1); }
un possibile modo è quello sopra riportato.
Se vuoi spiegazioni, chiedi pure.
ho visto che si puo' usare min e max (che non avevo mai usato) ma pero' in un forum ho visto che al posto di
if (n == 1)
return A[0];
usano
if (n == 0)
return A[0];
qual'è la soluzione giusta?
Scusa non ho capito bene questo
if(n <= 0)
return true
Avevo visto questo, ma il corretto nel mio caso è l'altro?Com'è il codice completo che hai visto?
Molto probabilmente viene passato l'indice sottraendo una unità nella prima chiamata alla funzione.
int findmin(const int a[], int n) {
if (n == 0) // base case
return a[0];
return a[n] < (int min = findmin(a, n - 1)) ? a[n] : min;
}