954,498 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Inner For loop's presence results in wrong output

Hi,

Why is it that when I remove(commented out) the inner j for loop and all it's contents, the cmd prints out my desired output. However, replacing back the inner for loop, it gives an incorrect output -> my counter values are wrong when printed. Can anyone spot what I have missed out? I need that inner for loop to be there in order to calculate my centroids 5 different times based on the varying counts that I'm incrementing in my i for loop. Below is my code:

for(int k=0;k<5;k++){
    e_count=0, b_count=0, n_count=0, r_count=0;

     for (int i=0;i<RLEN;i++){
        if(rri_val[i][2309]!=k && rri_val[i][2308]==EWS)
            e_count++;

        if(rri_val[i][2309]!=k && rri_val[i][2308]==BL)
            b_count++;

        if(rri_val[i][2309]!=k && rri_val[i][2308]==NB)
            n_count++;

        if(rri_val[i][2309]!=k && rri_val[i][2308]==RMS)
            r_count++;

//This is the for loop I'm talking about!!!
        for(int j=0;j<CLEN;j++){
            if(rri_val[i][2309]!=k){ //calculates the training samples' centroids 
                if(rri_val[i][2308]==EWS){
                    temp+=rri_val[i][j];           //EWS Centroid
                }
                centroid[EWS][j]=temp/e_count;
                temp=0;

                if(rri_val[i][2308]==BL){
                    temp+=rri_val[i][j];                //BL Centroid
                }
                centroid[BL][j]=temp/b_count;
                temp=0;

                if(rri_val[i][2308]==NB){               //NB Centroid
                    temp+=rri_val[i][j];
                }
                centroid[NB][j]=temp/n_count;
                temp=0;

                if(rri_val[i][2308]==RMS){
                    temp+=rri_val[i][j];                 //RMS Centroid
                }
                centroid[RMS][j]=temp/r_count;
                temp=0;

            }
                else if(rri_val[i][2309]==k){
		       t[i][j]=rri_val[i][j];      //stores test sample
                     
                }
        } //ends inner most for loop
			
    } //ends i for loop
        cout<<e_count<<" "<<b_count<<" "<<n_count<<" "<<r_count<<endl;
}//ends k for loop

Thanks.

leetari
Newbie Poster
14 posts since Sep 2007
Reputation Points: 10
Solved Threads: 0
 

Sorry people, I already fixed it, it was a wrong size of dimension problem...

It's giving me the right output now...

L8rz...

leetari
Newbie Poster
14 posts since Sep 2007
Reputation Points: 10
Solved Threads: 0
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: