Signumfunktion für Matrix



  • Ich grüße euch!
    Irgendwie kriege ich meine Wegematrix über die Signumfunktion nicht ausgedruckt welchen Fehler habe ich da gemacht?? 😕

    int *signum_fkt(int *a, int n){
    	int i,j;
    
    	for(i=0; i<n; i++){
    		for(j=0; j<n; j++){
    
    			if((a+i*n+j)>0){
    
    				return (int*)(1);
    
    			}else{
    
    				return (int*)(-1);
    
    			}
    			if((a+i*n+j)==0){
    
    				return (int*)(0);
    
    			}
    
    		}
    
    	}
    
    }//end of signum_fkt
    
    void ausgabe_wegematrix(int *a, int n){
    
    	int i,j;
    	printf("\n");
    	for(i=0; i<n; i++){
    		for(j=0; j<n; j++){
    
    printf("%d", *(a+i*n+j));
    		}
    		printf("\n");
    	}
    
    }//end of ausgabe_wegematrix
    


  • So vielleicht?

    void v_sign(int* input, int* output, size_t length)
    {
        int idx;
        int c_val;
    
        for(idx = 0; idx < length; ++idx)
        {
            c_val = input[idx];
    
            if(c_val > 0)
            {
                output[idx] = 1;
            }
            else if(c_val < 0)
            {
                output[idx] = -1;
            }
            else
            {
                output[idx] = 0;
            }
        }
    }
    

Anmelden zum Antworten