Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Abbiamo provato per una settimana intera la Can-Am Origin, la Dual Sport elettrica del gruppo canadese BRP: ecco com'è andata tra città, autostrada e un primo assaggio di sterrato
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
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


Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia) Test ride Can-Am Origin: la moto elettrica che f...
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
L'Olanda punta su NixOS e open source pe...
OPPO Find X10 Pro Max, il flagship con t...
Gli smartphone Samsung potrebbero avere ...
GeForce Now arriverà sui Googlebo...
Opus 5.5 e GPT-6 Sol nello stesso pomeri...
Weekend Amazon, le prime 5 offerte sono ...
Mini Compressore a 21,84€: gonfia le gom...
Gemini si aggiorna, ora può conne...
Da 32 a 65 pollici: ecco le TV più...
Xiaomi Redmi Note 17 a 269€: ecco perch&...
ASUS avverte i clienti: accesso non auto...
Già record di vendite su Amazon p...
Eni mette un tetto ai prezzi dei carbura...
BYD Seagull (Dolphin Surf), l'elettrica ...
Multa milionaria per un data center del ...
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: 11:58.


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