Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [C] somiglianza array

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    4

    [C] somiglianza array

    questo esercizio dovrebbe dirmi se due array inizializzati in modo random sono simili, sono simili quando la somma della distanza euclidea è minore di un certo numero scelto dall'utente l'array x e y sono le coordinate dei punti , l'ho completato ma mi dice sempre e comunque che sono simili come mai idee?

    codice:
    # include<stdio.h>
    # include<stdlib.h> /* per usare rand() e srand()*/
    # include<time.h> /* per usare time() */
    # include<math.h>
    int main ()
    {
    int n;
    printf("inserire un numero pari alla lunghezza dei due array");
    scanf("%d",& n);
    float x[n];
    float y[n];
    float dist=0,soglia,sum_dist=0;
    int j,i,logic;
    srand ( time (NULL));
    for (i =1; i <= n ; i ++)
    {
    x[i] =-100+(200)*(float)rand()/(float)RAND_MAX;
    printf ("x[%d]=%f " ,i ,x[i]);
    }
    for (j =1; j <= n ; j ++)
    {
    y[j] =-100+(200)*(float)rand()/(float)RAND_MAX;
    printf("y[%d]=%f " ,j ,y[j]);
    }
    printf("scegliere un numero float come soglia");
    scanf("%f",& soglia);
    
    
    i=1;
    j=1;
    while(i<=n-1 & j<=n-1)
    {
        dist=sqrt(pow(x[i+1]-x[i],2)+pow(y[j+1]-y[j],2) ) ;
        sum_dist=sum_dist + dist;
        dist=0;
        i=i+1;
        j=j+1;
    }
     printf("la somma della distanza euclidea è %f",sum_dist);
    
    
     if (logic =1)
     printf("I due array   sono simili");
    else
    printf("I due array non sono simili");
    
    
    
    
    int somiglianza_array(float soglia, float sum_dist,int logic)
    {
    if (sum_dist < soglia)
    
    
    
    
    logic=1;
    
    
    
    
     else
    logic=0;
    }
    
    
    }
    Ultima modifica di LeleFT; 26-02-2014 a 19:22 Motivo: Aggiunti i tag CODE

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    @fabb: il codice va postato all'interno degli appositi tag CODE forniti dal forum.
    Hai due possibilità:

    1) Entra in "Modalità avanzata" e usa il pulsante "#".
    2) Più semplicemente, apri il tag CODE, incolla il codice e chiudi il tag code:

    codice:
    codice

    Altrimenti il tuo codice rimane completamente privo di indentazione e formattazione... non so se ci hai fatto caso in tutte e 3 le discussioni che hai aperto.

    Queste le sistemo io, in futuro fallo tu.


    Ciao.
    Ultima modifica di LeleFT; 26-02-2014 a 19:25
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Il calcolo della distanza euclidea è completamente sbagliato; devi calcolare la radice della somma su tutte le i delle (x[i]-y[i]) al quadrato.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Aggiungo:

    scanf("%d",&n);
    float x[n];
    float y[n];

    Non puoi creare un array in questo modo, devi usare malloc (o calloc)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Può se usa un compilatore C99 compliant e il mingw che si installa con DevC++ usato - purtroppo - dagli studenti, lo permette.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Può se usa un compilatore C99 compliant e il mingw che si installa con DevC++ usato - purtroppo - dagli studenti, lo permette.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.