Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Programmi C++ smettono di funzionare

    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
    Immagini allegate Immagini allegate
    Ultima modifica di TheDragon0099; 17-03-2016 a 19:39

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Mah ... molte volte sono errori banali fatti con gli indici ...

    Ad esempio in questa riga

    for(j=0; j<lunghezza; i++){

    o in questa

    for(i=r-1; i>=0; i-1){
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.