Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-01-2015, 14:34   #1
bro41
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 10
c++ aiuto programma array

#include<stdio.h>

int main(){
int a[10],b[5],i,d;
double c;
d=1;
for(i=0;i<10;i++){
printf("inserisci valore di a\n");
scanf("%d",&a[i]);
c=i%2;
if(c!=0) {
b[d]=a[i];
d=d+1;
}
}
for(d=0;d<6;d++){
printf("%d",b[d]);
}
return 0;
}

in questo programmma devo dichiarare un array ed inserire tutti i componenti pari in un altro array che deve essere visualizzato. non riesco a capire dove sbaglio
bro41 è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2015, 15:20   #2
vendettaaaaa
Senior Member
 
L'Avatar di vendettaaaaa
 
Iscritto dal: Jan 2012
Messaggi: 1267
Quote:
Originariamente inviato da bro41 Guarda i messaggi
#include<stdio.h>

int main(){
int a[10],b[5],i,d;
double c;
d=1;
for(i=0;i<10;i++){
printf("inserisci valore di a\n");
scanf("%d",&a[i]);
c=i%2;
if(c!=0) {
b[d]=a[i];
d=d+1;
}
}
for(d=0;d<6;d++){
printf("%d",b[d]);
}
return 0;
}

in questo programmma devo dichiarare un array ed inserire tutti i componenti pari in un altro array che deve essere visualizzato. non riesco a capire dove sbaglio
Innanzitutto metti gli spazi tra gli operatori, non si capisce un'acca...
tipo if (c != 0), molto più leggibile...
Poi, se un utente inserisce 10 numeri pari, tu hai dichiarato b con lunghezza 5... e gli altri 5?
Poi, d parte da 1 per l'inserimento in b, anzichè da 0.
vendettaaaaa è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2015, 15:46   #3
bro41
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 10
grazie ce l ho fatta.
mi potresti aiutare con questo piccolo quesito:
si considerino le seguenti dichiarazione di variabili e prototipo(intestazione di funzione):
int vt[10] [20];
double x;
int f(int &a,int b);

la seguente espressione contiene degli errori

f( vt[7] [2] + 2, x + 2 ) + 7.8

mi potresti spiegare gli errori grazie
bro41 è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2015, 16:48   #4
bro41
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 10
#include<stdio.h>
int F(int &x,int &y)
{
x=y+1;
y=y+1;
return x + 1;

}
int main()
{
int x,y;
x=1;
y=F(y,x);
printf("%d",&y);
return 0;
}

potresti dare un occhio anche a questo grazie
bro41 è offline   Rispondi citando il messaggio o parte di esso
Old 18-01-2015, 17:30   #5
dStefano93
Member
 
L'Avatar di dStefano93
 
Iscritto dal: Nov 2010
Città: Genova
Messaggi: 186
Quote:
Originariamente inviato da bro41 Guarda i messaggi
snip
Tra gli errori che vedo qua:

1- vt e x non sono inizializzati ed f non è definita.

2- il primo parametro di f è dichiarato come un riferimento a int (necessario per il cosidetto passaggio per riferimento, rispetto al passaggio per copia), mentre nell'espressione, il parametro che viene dato è un int.

3- f ritorna un int e gli viene sommato un float. La riga compilerebbe comunque perchè dovrebbe venir fatta la conversione del valore di ritorno di f in un float (per esempio, se f ritornasse 5, avremmo 5.0 + 7.8). Credo che, a compile time, tu riceva un Warning perchè non usi il valore dell'espressione (anzi, direi che ricevi un'errore visto che non c'è il punto e virgola )

4- Il secondo parametro di f dovrebbe essere un int, mentre invece risulta un double.

Per quanto riguarda il tuo ultimo post: che problema è? Dovresti calcolare il valore di y che viene stampato?
Se è così, la cosa è abbastanza semplice, basta non confondersi tra la coppia di variabili x,y nel main e quella di parametri in F.

Discutendo delle righe del main in ordine (x e y sono quindi le variabili nel main) abbiamo che:

1) A x viene assegnato il valore 1
2) viene chiamata la funzione F che:
2-1)Assegna a y il valore 2
2-2)Assegna a x il valore 2
2-3)Ritorna il valore 3, il quale viene assegnato a y
3) Stampa il valore di y: 3
4) Ritorna 0 e conclude il main
dStefano93 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2015, 17:26   #6
bro41
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 10
#include<stdio.h>

int controlla(int &a,int b[10],int &c){
int i;

for(i=0;i<10;i++){
if ((i>0)&&(c=b[i-1])&&(c=b[i])){
a=1;
break;
}
else
a=0;
}
printf ("il valore di a è %d",&a);
return(0);
}

int main(){
int a[10],j,b,d;
printf("dammi d");
scanf("%d",&d);
for (j=0;j<10;j++){
printf("inserisci il valore nel vettore");
scanf ("%d",&a[j]);
}
controlla(b,a[j],d);
return(0);
}
bro41 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2015, 17:28   #7
bro41
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 10
in questo esercizio devo stampare a=1 se ci sono due valori consecuitvi nell array che sono uguali se no stampo a=0. devo risolverlo con l uso di una funzione ma mi da errore perche ?
bro41 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2015, 17:58   #8
dStefano93
Member
 
L'Avatar di dStefano93
 
Iscritto dal: Nov 2010
Città: Genova
Messaggi: 186
Potresti anche dire che tipo di errore ricevi

Così ad occhio, dovresti ricevere un segmentation fault, perchè dai come input alla funzione l'intero a[10] (dove l'ultimo posto allocato è a[9]).
Visto che vuoi avere un vettore in ingresso, quando chiami la funzione, dovrai scrivere:

controlla(b, a, d)
dStefano93 è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2015, 09:46   #9
bro41
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 10
#include<stdio.h>
#include<stdlib.h>

int controlla(int &a,int b[9],int c){
int i;
a=0;
for(i=0;i<9;i++){
if ((c==b[i])&&(c==b[i+1]))
a=1;
return (a);
}

int main(){
int a[9],j,b,d,ris;
printf("dammi d");
scanf("%d",&d);
for (j=0;j<10;j++){
printf("inserisci il valore nel vettore");
scanf ("%d",&a[j]);
}
ris=controlla(b,a,d);
printf("stampa il risultato %n",&ris);
return(0);
}


ora mi da un errore che non riesco a capire. qualcuno mi aiuta ?

Ultima modifica di bro41 : 21-01-2015 alle 10:52.
bro41 è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2015, 11:30   #10
dStefano93
Member
 
L'Avatar di dStefano93
 
Iscritto dal: Nov 2010
Città: Genova
Messaggi: 186
Non hai chiuso il for statement dopo "a=1;"
dStefano93 è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2015, 09:43   #11
bro41
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 10
grazie adesso non mi da errore pero quando faccio andare il programma alla fine mi da un risultato assurdo perche ?
bro41 è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2015, 10:34   #12
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da bro41 Guarda i messaggi
grazie adesso non mi da errore pero quando faccio andare il programma alla fine mi da un risultato assurdo perche ?
Come ti diceva DStefano93, non hai allocato abbastanza elementi, quindi vai oltre la capacita' del vettore.
Inoltre, il testo sembra chiederti si stampare a=1 se ci sono due elementi consecutivi uguali. Quindi, a cosa ti serve chiedere all'utente di inserire d?
E poi, cosa ti serve passare una variabile b - che non contiene alcun valore sensato - a controlla()? in controlla() poi le utilizzi con il nome a e le assegni subito un valore. Tanto vale dichiararla locale, giusto?
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2015, 13:36   #13
bro41
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 10
d mi serve perchè oltre a dover avere due valori uguali consecutivi nell vettore devono essere uguali anche ad un paramtro fornito da utente. per quanto riguarda il vettore perchè non va bene ? deve essere contenere 10 elementi e quello che ho fatto io va da 0 a 9. mentre inserisco la variabile b perchè l esercizio mi impone tre parametri.
bro41 è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2015, 14:04   #14
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da bro41 Guarda i messaggi
d mi serve perchè oltre a dover avere due valori uguali consecutivi nell vettore devono essere uguali anche ad un paramtro fornito da utente. per quanto riguarda il vettore perchè non va bene ? deve essere contenere 10 elementi e quello che ho fatto io va da 0 a 9. mentre inserisco la variabile b perchè l esercizio mi impone tre parametri.
Il tuo array va da 0 a 8, quindi 9 elementi. La variabile d non era stata indicata nel testo dell'esercizio che avevi pubblicato, quindi ho pensato di farlo notare.
Resta comunque il parametro a (il primo parametro della controlla()) che non ha senso, potresti dichiarare una variabile locale, al suo posto.
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2015, 14:16   #15
bro41
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 10
anche togliendo il parametro la funzione il programma non funziona:

#include<stdio.h>
#include<stdlib.h>

int controlla(int b[9],int &c){
int a,i;
a=0;
for(i=0;i<9;i++){
if ((c==b[i])&&(c==b[i+1]))
a=1;}
return (a);
}

int main(){
int a[9],j,d,ris;
printf("inserisci d");
scanf("%d",&d);
for (j=0;j<10;j++){
printf("inserisci il valore nel vettore");
scanf ("%d",&a[j]);
}
ris=controlla(a,d);
printf("stampa il risultato %d",&ris);
return(0);
}

nella funzione faccio arrivare il cilo fino ad 8 perchè tanto attraverso l if uso la posizione 9
bro41 è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2015, 15:22   #16
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da Antonio23 Guarda i messaggi
Ho fatto girare il tuo programma, a me funziona, probabilmente non stai dando i valori di ingresso correttamente, es.
...
Beh, piu' che funziona direi che "ha girato"
Codice:
int main(){
    int a[9],j,d,ris;
    printf("inserisci d");
    scanf("%d",&d);
    for (j=0;j<10;j++){
        printf("inserisci il valore nel vettore");
        scanf ("%d",&a[j]);
    }
    ris=controlla(a,d);
    printf("stampa il risultato %d",&ris);
    return(0);
}
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 22-01-2015, 17:35   #17
bro41
Junior Member
 
Iscritto dal: Jan 2015
Messaggi: 10
ragazzi io studio economia e sn capitato qua per avere quaòche dritta . abbiate pazienza ma che dimensione dovrei mettere ?
cosa ho sbagliato nel printf ?
grazie
bro41 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
Addio LED di debug: i display arrivano a...
Tim Cook non ha dubbi su iPhone Air: 'Am...
Veterano italiano lascia Tesla sbattendo...
Il robot che gioca a ping pong meglio di...
IA e ransomware: una combinazione micidi...
Addio treni e aerei? Per Hyperloop un te...
Microsoft porta una comoda novità...
Le azioni Gemini balzano oltre il 30% al...
TSMC diventa produttore di... miele! Dal...
Windows 11 24H2, rimosso un vecchio bloc...
Autunno su AliExpress: sconti folli fino...
È ancora dominio Apple: iPhone 16...
Dogecoin diventa azionista di maggioranz...
xAI, la startup di Elon Musk, si ridimen...
NVIDIA nei guai in Cina: accusata di vio...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:05.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v