Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
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 midrange ha uno stemma di Hogwarts che cambia colore al sole!
Hogwarts arriva in fascia media grazie a realme, con una special edition che unisce la Quadra Light-Sensing Color-changing Tech, un baule in stile Hogwarts Express pieno di collezionabili e una scheda tecnica sostanzialmente identica al 16 Pro di partenza: ecco cosa cambia davvero, come si comporta nell'uso quotidiano e quanto vale in base al prezzo di 699,99 euro
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
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


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...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
ESA e Mistral hanno stretto un accordo p...
AstroForge presenta Autonomy-1: un satel...
Neutralizzata da Microsoft EvilTokens, l...
Porsche mette alla prova i Tesla Superch...
Roborock Saros 20 Flow Complete arriva i...
Basta un comando digitato nel terminale ...
La corsa alla superintelligenza è...
Le memorie cinesi sfidano sé stes...
Dash cam 4K con doppia telecamera, GPS, ...
Qwen 4: Alibaba conferma l'addestramento...
Super El Niño, allarme globale: 451.000 ...
Toyota, 400.000 robot in fabbrica senza ...
Hanno bucato l'FBI e ora dettano le cond...
Standard sì, licenze no: la linea di Ope...
Guida all'acquisto: quale smartphone HON...
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: 20:04.


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