Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione
Abbiamo provato per diverse settimane il nuovo Magic V5 di HONOR, uno smartphone pieghevole che ci ha davvero stupito. Il device è il più sottile (solo 4.1mm) ma non gli manca praticamente nulla. Potenza garantita dallo Snapdragon 8 Elite, fotocamere di ottima qualità e batteria in silicio-carbonio che garantisce un'ottima autonomia. E il Prezzo? Vi diciamo tutto nella nostra recensione completa.
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Google Pixel 10 Pro XL è il top di gamma della serie Pixel, presentando un ampio display Super Actua da 6.8 pollici insieme alle novità della serie, fra cui la ricarica wireless magnetica Pixelsnap e le nuove funzionalità AI avanzate. Il comparto fotografico include un sistema a tripla fotocamera con zoom Pro Res fino a 100x, mentre il processore Tensor G5 con 16GB di RAM garantisce prestazioni percepite molto elevate su Android.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-11-2002, 09:31   #1
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Somma array

Ciao a tutti, ho un nuovo quesito da risolvere....
devo fare la somma incrociata degli elementi contenuti in due array di interi distinti...ma devo usare assssolutamente i puntatori....ma tanto per cambiare c'e qualcosa che non torna..

Avete idea di cosa possa aver sbagliato?

Codice:
#include <stdlib.h>
#include <stdio.h>
#define DIM 5

int main()
{int a[DIM];
 int b[DIM];
 int c[DIM];
 int *p1,*p2,*p3;
 p3=&c[0];
 printf ("Digita i %d numeri del primo array\n",DIM);
 for (p1=&a[0]; p1<=&a[DIM-1]; p1++)
  scanf ("%d", p1);
 printf ("Digita i %d numeri del secondo array\n",DIM);
 for (p2=&b[0]; p2<=&b[DIM-1]; p2++)
  scanf ("%d", p2);
 for (p1=&a[0]; p1<=&a[DIM-1]; p1++,p2++,p3++)
 {p3=*p1+*p2;
  printf ("%d  ",*p3);}

system("PAUSE");
return 0;
}
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2002, 10:28   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Che strano... Con Dev-C++ non funziona...mentre con VC++ funziona perfettamente... Mah...

PS: manca l'asterisco davanti a p3 quando fai la somma...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2002, 10:34   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E invece l'errore c'era...
Devi reinizializzare p1 e p2 all'inizio dei rispettivi vettori...
Codice:
#include <stdlib.h>
#include <stdio.h>
#define DIM 5

int main()
{int a[DIM];
 int b[DIM];
 int c[DIM];
 int *p1,*p2,*p3;
 p3=c;
 printf ("Digita i %d numeri del primo array\n",DIM);
 for (p1=a; p1<=&a[DIM-1]; p1++)
  scanf ("%d", p1);
 printf ("Digita i %d numeri del secondo array\n",DIM);
 for (p2=b; p2<=&b[DIM-1]; p2++)
  scanf ("%d", p2);
 for (p1=a, p2=b; p1<=&a[DIM-1]; p1++,p2++,p3++) /*gurda qui*/
 {*p3=*p1+*p2;
  printf ("%d  ",*p3);}

system("PAUSE");
return 0;
}
Ora però non mi spiego come potesse funzionare in VC++...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2002, 10:40   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Che bello

Ti spiego perchè funzionava...

Il vettore a veniva allocato dopo di b...quindi &b[5] == &a[0]...

Io immettevo gli stessi numeri in entrambi i vettori (1 2 3 4 5)...
Finita l'immissione p2 mi puntava a a[0]...
Così facevo la somma delle stesse locazioni in memoria ed avendo immesso gli stessi numeri in entrambi i vettori la somma era quella che sarebbe dovuta essere
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2002, 11:18   #5
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Quote:
Originariamente inviato da cionci
[b]Che bello

Ti spiego perchè funzionava...

Il vettore a veniva allocato dopo di b...quindi &b[5] == &a[0]...

Io immettevo gli stessi numeri in entrambi i vettori (1 2 3 4 5)...
Finita l'immissione p2 mi puntava a a[0]...
Così facevo la somma delle stesse locazioni in memoria ed avendo immesso gli stessi numeri in entrambi i vettori la somma era quella che sarebbe dovuta essere

Ah! anche a me dava sto problema prima di postare...poi l'ho modificato e cmq l'ho postato sbagliato....un'altra cosa la somma doveva essere incrociata nel senso : c[0]=a[0]+b[DIM-1] c[1]=a[1]+b[DIM-1-1] e così via.....ma ho risolto ...dovrebbe essere ok cosi...



Codice:
#include <stdlib.h>
#include <stdio.h>
#define DIM 5

int main()
{int a[DIM];
 int b[DIM];
 int c[DIM];
 int *p1,*p2,*p3;
 p3=&c[0];
 printf ("Digita i %d numeri del primo array\n\n",DIM);
 for (p1=&a[0]; p1<=&a[DIM-1]; p1++)
  scanf ("%d", p1);
 printf ("\nDigita i %d numeri del secondo array\n\n",DIM);
 for (p2=&b[0]; p2<=&b[DIM-1]; p2++)
  scanf ("%d", p2);
 printf ("\nLa somma incrociata dei numeri inseriti corrisponde a:\n\n");
 for (p1=a, p2=&b[DIM-1]; p1<=&a[DIM-1]; p1++,p2--,p3++)
 {*p3=*p1+*p2;
  printf ("%d  ",*p3);}
  printf ("\n\n");
system("PAUSE");
return 0;
}
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2002, 11:25   #6
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Quote:
Originariamente inviato da cionci
[b]E invece l'errore c'era...
Devi reinizializzare p1 e p2 all'inizio dei rispettivi vettori...
Codice:
#include <stdlib.h>
#include <stdio.h>
#define DIM 5

int main()
{int a[DIM];
 int b[DIM];
 int c[DIM];
 int *p1,*p2,*p3;
 p3=c;
 printf ("Digita i %d numeri del primo array\n",DIM);
 for (p1=a; p1<=&a[DIM-1]; p1++)
  scanf ("%d", p1);
 printf ("Digita i %d numeri del secondo array\n",DIM);
 for (p2=b; p2<=&b[DIM-1]; p2++)
  scanf ("%d", p2);
 for (p1=a, p2=b; p1<=&a[DIM-1]; p1++,p2++,p3++) /*gurda qui*/
 {*p3=*p1+*p2;
  printf ("%d  ",*p3);}

system("PAUSE");
return 0;
}
Ora però non mi spiego come potesse funzionare in VC++...


dimmmi se ho capito bene....

allora si riinizializzano entrambi p1=a, p2=&b[DIM-1]; perche nei rispettivi cicli for precedenti p1 era diventato=&a[DIM-1] (condizione di termine del ciclo); e p2 era diventato =&b[DIM-1]; ??? ho capito bene?


se cosi allora non mi servirebbe riinizializzare p2 dato che parto dall'ultimo elemento dell'array b...adesso provo....

e invece serve...mi stampa cazz@te se non riinizializzo anche p2...ma perche? in cosa è sbagliato il mio ragionamento?
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2002, 11:35   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da MetalMassacre
[b]
dimmmi se ho capito bene....

allora si riinizializzano entrambi p1=a, p2=&b[DIM-1]; perche nei rispettivi cicli for precedenti p1 era diventato=&a[DIM-1] (condizione di termine del ciclo); e p2 era diventato =&b[DIM-1]; ??? ho capito bene?
Hai capito bene... Però p1 era diventato &a[DIM]....e p2 era &b[DIM]... Perchè dal for ci escono quando i puntatori sono maggiori dell'ultima cella dell'array...quindi quando p1 > &a[DIM-1]...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
Un cane-robot e un drone stanno rivoluzi...
Valigia sparita a Los Angeles: AirTag la...
GeForce RTX 5060 e 5060 Ti: troppe scort...
CarPlay Ultra arriva sulla nuova Hyundai...
Hideo Kojima pronto a stupire tutti di n...
Windows 11 25H2, come scaricarlo e insta...
HUAWEI MatePad 11.5 2025, con schermo op...
Scheda video MSI RTX 5060 Ti in offerta ...
Gli incentivi ritardano, le vendite fren...
Accordo LG–Octopus Energy: pompe di calo...
12 articoli, da 9,94€ a 59,99€ su Amazon...
Robot aspirapolvere super potente a un p...
Dopo un mese dal lancio, Samsung si rico...
Smartwatch in super offerta su Amazon: C...
Offerta Amazon sugli Oral-B iO: due spaz...
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:28.


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