Ciao, sono nuovo ne forum! Sono un programmatore alle prime armi (specialmente con C++); il mio professore ci assegna dei programmi da fare (sempre in C++) per esercitarci ma un problema accomuna tutti i programmi che faccio: quando li mando in esecuzione smettono di funzionare! Ora vi mando un esempio di script scritto da me (che trova gli errori in una stringa di bit col metodo di hamming) e sarei grato se mi potreste trovare l'errore... Grazie in anticipo!
codice:
#include <iostream>
#include <cstdlib>
#include <string.h>
#include <math.h>
using namespace std;
int main(int argc, char** argv) {
string stringa, bitcontrollo;
int lunghezza, i, j, r=1, contatore_uno=0, posizione_errore;
float resto;
cout<<"Inserisci la stringa di hamming (non più grande di 16 bit): ";
cin>>stringa;
lunghezza=stringa.length();
do {
r=r+1;
}
while (lunghezza+r+1>=pow(2, r));
r=r-1;
int matrice[lunghezza][r];
for(i=0; i<r; i++){
for(j=0; j<lunghezza; i++){
matrice[j][i]=0;
}
}
for(j=0; j<lunghezza; j++){
for(i=r-1; i>=0; i-1){
matrice[j][i]=matrice[j][i]+1;
if(matrice[j][i]==2){
matrice[j][i]=0;
matrice[j][i-1]=matrice[j][i-1]+1;
}
}
}
for(i=r-1; i>=0; i--){
for(j=0; j<lunghezza; j++){
if (matrice[j][i]==1){
contatore_uno=contatore_uno+1;
}
}
resto=contatore_uno%2;
if(resto!=0) {
posizione_errore=posizione_errore+pow(2, i);
}
contatore_uno=0;
}
if(posizione_errore==0){
cout<<"Non ci sono errori";
}
else {
if(stringa[posizione_errore]==0){
stringa[posizione_errore]=1;
cout<<"La stringa corretta è: "<<stringa;
}
else {
stringa[posizione_errore]=0;
cout<<"La stringa corretta è: "<<stringa;
}
}
system("pause");
return 0;
}
Come return value mi da 3221225477