Programma ANSI C

di il
52 risposte

52 Risposte - Pagina 3

  • Re: Programma ANSI C

    Ok...allora ci sono... ti scoccia se ti chiedo di guardarmi anche la trasposta?
    devo scambiare ordinatamente le righe con le colonne e salvare il tutto in un'ulteriore matrice...
    ho creato la nuova matrice (la crea!!!) e gli ho detto che riga1=colonna1 (prende il valore!!!) e poi colonna1=riga1...ma la matrice ke m stampa non è la matrice trasposta...
      
      matrice1T = (int**)calloc(n_rc, sizeof(int*));
      for(z = 0; z < n_rc; z++)
       matrice1T[z] = (int*)calloc(n_rc,sizeof(int));
    
      for(riga1=0; riga1<n_rc;riga1++){
       for(colonna1=0; colonna1<n_rc; colonna1++)
            {
                 riga1 = colonna1;
    	     colonna1 = riga1;
                 matrice1T[riga1][colonna1] = riga1;   
                 
            }
       } 
       printf("la matrice trasposta di A è:\n");
       for(riga1=0; riga1<n_rc; riga1++)
       {
         for(colonna1=0; colonna1<n_rc; colonna1++)
           printf("%d ", matrice1T[riga1][colonna1]);
         printf("\n");
       }
  • Re: Programma ANSI C

    La prossima lo fai da solo.
    
    for(riga1=0; riga1<n_rc;riga1++){
       for(colonna1=0; colonna1<n_rc; colonna1++)
            {
                matrice1T[riga1][colonna1] = matrice1[colonna1][riga1];              
            }
       } 
    
  • Re: Programma ANSI C

    Grazie mille!!!!
  • Re: Programma ANSI C

    Ciao...rieccomi...ma ho bisogno solo di una consiglio
    allora, sono andata avanti, ho fatto il prodotto e funziona.
    sono arrivata al discorso di massimo e minimo... io pensavo di usare seletcsort e di fargli prendere il primo elemento dell'ordinamento come minimo e l'ultimo come massimo...cosa ne pensi???
    Grazie mille
  • Re: Programma ANSI C

    Trovare il min/max senza riordinamento hai una complessità O(n^2), con selectionSort idem. Quindi un metodo vale, l'altro.
  • Re: Programma ANSI C

    Ok...grazie mille...ma essendo l'esame di algoritmi suppongo che sia meglio usare selectsort...visto anche che ci si è soffermeto un bel po' il prof su gli algoritmi di ordinamento...grazie milleeeeee
  • Re: Programma ANSI C

    Un'altra cosa...come faccio a fargli controllare sia le righe che le colonne...insomma come devo procedere con una matrice??? allo stesso come di come avrei fatto con un semplice array?
  • Re: Programma ANSI C

    
    for(riga1=0; riga1<n_rc;riga1++){
       for(colonna1=0; colonna1<n_rc; colonna1++)
    
    non ti basta?
  • Re: Programma ANSI C

    Ho deciso di procedere con i 2 for annidati....ma nn capisco xke nn funziona...
       for(riga1=0;riga1<n_rc;riga1++){
    	for(colonna1=0;colonna1<n_rc;colonna1++){
    		if(matrice1[riga1][colonna1]==matrice1[riga1+1][colonna1+1] || matrice1[riga1][colonna1]<=matrice1[riga1+1][colonna1+1]){
    			massimo=matrice1[riga1+1][colonna1+1];
    		}else {
    			massimo=matrice1[riga1][colonna1];
    		}
    	}
       }	
       printf("il valore massimo della matrice è %d\n", massimo);   
  • Re: Programma ANSI C

    Ho risolto da sola
  • Re: Programma ANSI C

    Ho ufficialmente un problema enorme...
    per risolvere il medio ho dovuto usare valori double.
    fin qui è tutto ok...
    passando alla deviazione standard m sono ritrovata a fare una differenza tra un int(il valore della matrice) e un double(il valore del medio) e il tutto va elevato al quadrato...m da errore...m dice che il problema sta nelle op tra int e double...non so cosa fare...nelle specifiche c'è scritto chiaro che devono essere x forza valori int nella matrice...quindi nn so come andare avanti... ufff ti ho mandato il codice!
    
    
    /*medio*/
      n_el = n_rc*n_rc;
      printf("il numero di elementi della matrice è %f\n", n_el);
      for(riga1=0;riga1<n_rc;riga1++){
         for(colonna1=0;colonna1<n_rc;colonna1++){
             accumulatore3+=matrice1[riga1][colonna1];
         }
      }
      medio1=accumulatore3/n_el;
      printf("il valore medio della matrice A %f\n", medio1);
    
    /*dev standard */
    
      for(riga1=0;riga1<n_rc;riga1++){
         for(colonna1=0;colonna1<n_rc;colonna1++){
              acc1=(matrice1[riga1][colonna1]-medio1)^2;
              accumulatore6+=acc1;
         }
      }
      devs1=sqrt(accumulatore6/n_el);
      printf("il valore della deviazione standard della matrice A %f\n", devs1);  
    il medio ripeto che funziona alla perfezione...la dev standard non fa... ufffffffffffffffffffffffffaaaaaaaaaaa
  • Re: Programma ANSI C

    Cos'è questo?
    
    acc1=(matrice1[riga1][colonna1]-medio1)^2;  //XOR tra variabili?
    
    se intendevi il quadrato del espressione devi usare la funzione pow, oppure moltiplicarlo x se stesso.
    
    acc1 = pow((matrice1[riga1][colonna1]-medio1),2.0f);
    
  • Re: Programma ANSI C

    Ah ecco...mai vista quella funzione...ma per fare la radice del tutto come faccio??? m da errore li...
  • Re: Programma ANSI C

    
    sqrt(double(double(accumulatore6)/double(n_el)));
    
  • Re: Programma ANSI C

    Grazie mille...mica mi potresti indicare dove trovare tutto queste funzioni xke ne al corso ne tanto meno nel libro le ho trovate...
    grazie mille di tutto sei stato veramente gentile e d'aiuto!!!
Devi accedere o registrarti per scrivere nel forum
52 risposte