Risultati da 1 a 2 di 2

Discussione: Programma in C sulla gestione di cordinate X-Y

  1. #1
    Senior Member
    Data Registrazione
    06-05-2004
    Messaggi
    114

    Programma in C sulla gestione di cordinate X-Y

    Salve come detto sopra dovrei fare un programma di questo genere:in pratica date delle cordinate x e y e immagazzinate in un unico vettore esempio : [(3,2);(-2,-5);(-1,2)] dividere questo vettore in altri due vottri,in uno dovranno andarci cordinate positive nell'altro negative,ES. [(3,2)] per il vettore positivo , [(-2,-5)] x il vettore negativo.
    Questo è quel che ho fatto io:
    Codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define SIZE 100
    void dividuevet (int [],int,int);
    
    int main()
    {
     int a[SIZE];
     int d;
     int x,y,i,b,c;
     printf("quante cordinate vuoi inserire?\n");
     scanf("%d",&d);
     for(i=0;i<=d;i++){
     printf("------IMMETTI LA CORDINATA------\n");
     printf("X :");
     scanf("%d",&a[SIZE]);
     printf("\nY :");
     scanf("%d",&a[SIZE]);}
     printf("*-*-*-*-*-*-DIVIDIAMO IL VETTORE IN DUE SOTTOVETTORI*-*-*-*-*-*-*\n");
     dividuevet ( a,b,c );
     printf("-------VETTORE CON CORDINATE PARI--------");
     
      
      
      
      system("PAUSE");
      	
      return 0;
    }
    
    void dividuevet (int a[],int b,int c)
    {int i,counter;
      //int a[SIZE]    vettore originario
      //int b[SIZE]    vettore dove andremo a mettere le cordinate pari
      //int c[SIZE]    vettore dove andremo a mettere le cordinate dispari
      
     for(i=0;i<=a[SIZE];i+=2){
     for(counter=1;counter<=a[SIZE];counter+=2)
     if (a[i] && a[counter] > 0)
         a[i] && a[counter] = b[SIZE];
     else a[i] && a[counter] = c[SIZE];}
     
     return;
    }
    mi da errore su questo:
    if (a[i] && a[counter] > 0)
    a[i] && a[counter] = b[SIZE];
    else a[i] && a[counter] = c[SIZE];
    li in pratica io vorrei scorrere il vettore pricinpale con due indici uno che parte da 0 e incrementa di 2,l'altro parte da 1 e incrementa sempre di 2,cosi da scorrere tutti gli indici del vettore se entrambi gli indici trovano un numero > 0 deve inserire quella coppia nel vettore positivo altrimenti va nel vettore negativo.Logicamente il main ancora nn è finito.

  2. #2
    New Member
    Data Registrazione
    16-12-2005
    Messaggi
    9
    guarda se questo ti puo' essere utile :


    #include <stdio.h>

    #define MAX 100

    struct coord{
    int X;
    int Y;
    };

    void dividi_vettore(struct coord princ[],int ncoppie);
    void stampa_vettore(struct coord vett[],int lung);


    int main(){
    struct coord principale[MAX];
    int num_coppie,i;

    printf("\nInserire il numero di copie : ");
    scanf("%d",&num_coppie);

    for (i=0;i<num_coppie;i++){
    printf("\nX : ");
    scanf("%d",&principale[i].X);
    printf("\nY : ");
    scanf("%d",&principale[i].Y);
    }

    dividi_vettore(principale,num_coppie);
    }

    void dividi_vettore(struct coord princ[],int ncoppie){
    struct coord positive[MAX],negative[MAX];
    int i,index_pos,index_neg;

    index_pos=index_neg=-1;
    for (i=0;i<ncoppie;i++){
    if ((princ[i].X>=0)&&(princ[i].Y>=0)){
    index_pos++;
    positive[index_pos]=princ[i];
    }
    else if ((princ[i].X<0)&&(princ[i].Y<0)){
    index_neg++;
    negative[index_neg]=princ[i];
    }
    }
    printf("\nPOSITIVI :");
    stampa_vettore(positive,index_pos);
    printf("\nNEGATIVI :");
    stampa_vettore(negative,index_neg);
    }

    void stampa_vettore(struct coord vett[],int lung){
    int i;

    printf("\n");
    for (i=0;i<=lung;i++){
    printf("(%d,%d)\n",vett[i].X,vett[i].Y);
    }
    }

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •