Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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.
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Snapdragon Soung Gen 2 è la piattaforma Qualcomm per i dispositivi audio sempre più integrati nel mondo dell'intelligenza artificiale: al prorpio interno tanta potenza elaborativa per gestire al meglio le necessità d'uso dell'agentic AI
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
In occasione del proprio Snapdragon Summit Qualcomm annuncia i due nuovi chip per dispositivi mobile di fascia alta che entreranno nel mercato nel corso del 2027: tanta potenza a disposizione per elaborazioni di intelligenza artificiale sempre più complesse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-08-2011, 19:51   #1
IngMetallo
Senior Member
 
L'Avatar di IngMetallo
 
Iscritto dal: Feb 2011
Messaggi: 2013
[C++] Modificare elementi di un Array

Ragazzi oggi mi sono imbattuto in un problema veramente stupido, suppongo.. ma non riesco a venire a capo.

In un programma che sto facendo ho bisogno di poter modificare un array bidimensionale 2x2 che viene inizializzato con tutti gli elementi a zero.
Eseguendo il codice che vi riporto più sotto, mi sono accorto che l'array veniva sballato dopo la modifica.. così ho aggiunto altre righe di codice per vedere dove fosse il problema.. in pratica dopo avere preso in input x e y non so perché ma il valore della y sballa e l'array di conseguenza non viene modificato correttamente o.o

Dov'è che sbaglio ? non riesco proprio a capire..

Codice:
#include<iostream>
using namespace std ;

int main ()
{
    int x, y, nuovo ;
    int v[2][2] ;
    
    for (int i=0; i<3; i++)  // inizializzazione array
    {
        for (int j=0; j<3; j++)
        {
            v[i][j] = 0 ;
        }    
    }
    
    for (int i=0; i<3; i++) // stampa di verifica array
    {
        for (int j=0; j<3; j++)
        {
            cout.width(3);
            cout << v[i][j] ;
        }    
        cout << endl ;
    }
    
    cout << " insersci la posizione dove vuoi inserire un nuovo elemento : " ;
    cout << " inserisci x = " ;
    cin >> x ;
    cout << " inserisci y = " ; 
    cin >> y ; 
    
    cout << " che numero vuoi inserire ? " ;
    cin >> nuovo ;    
    
    cout << endl ;
    v[x][y] = nuovo ;
    cout << nuovo << " e stato inserito nella posizione " << x << " ," << y ; // verifica che i valori x e y siano corretti.. qui è dove trovo l'errore 
    
    for (int i=0; i<3; i++) //stampa array modificato 
    {
        for (int j=0; j<3; j++)
        {
            cout.width(3) ;
            cout << v[i][j] ;
        }    
        cout << endl ;
    }
    
    
    system ("PAUSE") ;
    return 0 ;
}
p.s: studio programmazione da 3 mesi, siate clementi
__________________
CPU: Intel i5 2500k; GPU: Asus GTX 970 ; Scheda audio: Asus Xonar U7; RAM: 16GB DDR3; Storage: HD 750GB+SSD Samsung 840 (128GB); OS: Arch Linux | Linux Mint 18 | Win 7 (gaming)
Thread ufficiali : Linux Mint 18 | Ubuntu 16.04
| Desktop Environments & Window Manager per Linux
IngMetallo è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2011, 21:04   #2
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Perchè inizializzi con 2 elementi e invece nei cicli scrivi 3?

Negli array
array[0] --> elemento numero uno
array[1] --> elemento numero due
e così via

Nei cicli
Codice:
for(int i = 0; i < 2; i++){....}
scrivi correttamente, mentre con
Codice:
for(int i = 0; i < 3; i++){....}
sfori


ti consiglio per non fare errori di questo tipo di definirti una macro
Codice:
#define SIZE 2
quindi nel codice
Codice:
int array[SIZE]......
for(int i = 0; i < SIZE; i++){...}
invece di scrivere ogni volta il numero basta che scrivi la macro associata, poi ci penserà il preprocessore a sostituirla con il numero

Ultima modifica di clockover : 12-08-2011 alle 21:07.
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2011, 21:20   #3
Perseverance
Senior Member
 
L'Avatar di Perseverance
 
Iscritto dal: Jul 2008
Messaggi: 8357
Ricordati che in informatica si parte a contare da ZERO 0. Il tuo v è:
v[0][0]
v[0][1]
v[1][0]
v[1][1]
__________________
System Failure
Perseverance è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2011, 21:25   #4
IngMetallo
Senior Member
 
L'Avatar di IngMetallo
 
Iscritto dal: Feb 2011
Messaggi: 2013
EDIT: ah credo di aver capito.. un attimo che verifico xD

Sì come immaginavo era un errore stupido.. sbagliavo all'inizio inizializzando v[2][2] l'array mi serviva di 3 righe x 3 colonne e non so perché io credevo che inizializzando v[2][2] avrei avuto 3 colonne e 3 righe.. bah xD

comunque grazie per i suggerimenti e le risposte veloci
__________________
CPU: Intel i5 2500k; GPU: Asus GTX 970 ; Scheda audio: Asus Xonar U7; RAM: 16GB DDR3; Storage: HD 750GB+SSD Samsung 840 (128GB); OS: Arch Linux | Linux Mint 18 | Win 7 (gaming)
Thread ufficiali : Linux Mint 18 | Ubuntu 16.04
| Desktop Environments & Window Manager per Linux

Ultima modifica di IngMetallo : 12-08-2011 alle 21:31.
IngMetallo è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2011, 23:01   #5
supersalam
Senior Member
 
L'Avatar di supersalam
 
Iscritto dal: Jun 2003
Città: Monopoli
Messaggi: 2789
Quote:
Originariamente inviato da IngMetallo Guarda i messaggi
EDIT: ah credo di aver capito.. un attimo che verifico xD

Sì come immaginavo era un errore stupido.. sbagliavo all'inizio inizializzando v[2][2] l'array mi serviva di 3 righe x 3 colonne e non so perché io credevo che inizializzando v[2][2] avrei avuto 3 colonne e 3 righe.. bah xD

comunque grazie per i suggerimenti e le risposte veloci
L'array è inizializzato bene, hai sbagliato la condizione di chiusura dei cicli for. Prova a mettere 2 al posto di 3.
__________________
CASE: Antec P182 - ALI: Corsair CX650M - CPU: AMD Ryzen 5 PRO 4650G +
Cooler Master Hyper 212X - MB: ASUS PRIME A520M-K -RAM: G.SKILL Aegis 3200MHz 16GB - SSD: SanDisk Plus SSD 240GB - SA: Asus Xonar Essence STX - MOUSE: Logitech G9 - CUFFIE: Sennheiser HD 595 -
*STEAM*
supersalam è offline   Rispondi citando il messaggio o parte di esso
Old 12-08-2011, 23:29   #6
IngMetallo
Senior Member
 
L'Avatar di IngMetallo
 
Iscritto dal: Feb 2011
Messaggi: 2013
Quote:
Originariamente inviato da supersalam Guarda i messaggi
L'array è inizializzato bene, hai sbagliato la condizione di chiusura dei cicli for. Prova a mettere 2 al posto di 3.
ma no l'errore mio stava nell'inizializzazione dell'array.. infatti modificato quello poi ho risolto per il resto del programma comunque anche nel primo post ho sbagliato a scrivere.. ero convinto che dichiarando un array [2][2] si intendesse a 3 colonne e 3 righe, invece non era affato così..

I cicli for ripetevano il blocco di istruzioni al loro interno 3 volte e quindi andava bene. Il problema era che l'array bidimensionale aveva solo 4 "elementi" (2x2) al posto dei 9 (3x3)che mi servivano.. E' che ricordavo male come si inizializzassero gli array.. e io che stavo pensando a tutt'altro..

Era veramente banale e infatti è stata l'unica cosa che non ho ricontrollato del programma.. la prossima volta farò attenzione anche alle cose più banali
__________________
CPU: Intel i5 2500k; GPU: Asus GTX 970 ; Scheda audio: Asus Xonar U7; RAM: 16GB DDR3; Storage: HD 750GB+SSD Samsung 840 (128GB); OS: Arch Linux | Linux Mint 18 | Win 7 (gaming)
Thread ufficiali : Linux Mint 18 | Ubuntu 16.04
| Desktop Environments & Window Manager per Linux
IngMetallo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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...
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Gli appunti di Gemini Notebooks finiscon...
PrismML porta un LLM a 1 bit sugli occhi...
Falso sito del Servizio Sanitario Nazion...
Aggiornamento massiccio per Chrome: riso...
28 Offerte Amazon, è il momento g...
Fideuram, la truffa da 95 milioni parte ...
Come funziona Micro RGB, la retroillumin...
GitLab: nei README ci sono indirizzi ema...
Il cervello umano insegna all'IA a fare ...
WhatsApp prepara una nuova barra di navi...
Tesla anticipa il nuovo Roadster con un ...
Tesla FSD nelle zone 30 di Bruxelles: il...
Xiaomi aggiorna la gamma di tablet con i...
Ha percorso 1.338 km senza mai ricaricar...
TCL annuncia l'arrivo in Italia dek Kids...
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: 10:54.


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