Programmino vettori

di il
4 risposte

Programmino vettori

Non riesco a capire come far funzionare questo programma :

#include<stdio.h>
#define MAX 10

main(){

int v1[MAX],v2[MAX],v3[MAX],i,n;

scanf("%d",&n);

for(i=0;i<MAX;i++){

scanf("%d",&v1);

}

for(i=0;i<MAX;i++){

if(v1<n)
v2==v1;
else
v3==v1;

}

for(i=0;i<MAX;i++){

printf("%d",v1);
}

for(i=0;i<MAX;i++){

printf("minori %d",v2);
}

for(i=0;i<MAX;i++){

printf("maggiori %d",v3);
}


}

In pratica bisogna inserire n interi in un vettore e poi a seconda del numero n bisogna mettere i minori in un secondo vettore ed i maggiori uguali in un terzo e poi stampare a video i 3 vettori .

4 Risposte

  • Re: Programmino vettori

    maxilrosso ha scritto:


    Nel frattempo ti faccio notare alcune cose fondamentali:
    == è confronto, per assegnare si usa l'uguale
    nel printf se metti &v2 ti stampa l'indirizzo di memoria, se vuoi il contenuto della variabile non devi mettere l'&


    Hai ragione sulla & mi era sfuggita grazie !
  • Re: Programmino vettori

    maxilrosso ha scritto:


    E la storia dell'uguAle l'hai capita?

    E il programma che ti ho scritto LHai letto?
    Si , grazie
  • Re: Programmino vettori

    maxilrosso ha scritto:


    Prova a vedere se ti va bene (NB: mancano gli include, mettili tu)
    
    
    /*define*/
    #define MAX 5
    /*prototipi*/
    void stampa(int*,int);
    /*main*/
    int main()
    {
     int i,n;
     int v[MAX],v1[MAX],v2[MAX];
     printf("Inserisci i %d numeri:\n\n",MAX);
     for (i=0;i<MAX;i++)
     {
         printf("v[%d]: ",i);
         scanf("%d",&v[i]);
     }
     printf("\nInserisci il numero sul quale fare il confronto: ");
     scanf("%d",&n);
     int i1,i2; /*i due indici che scorrono su v1 e v2*/
     i1=i2=0;
     for (i=0;i<MAX;i++)
         if (v[i]<n)
         {
            v1[i1]=v[i];
            i1++;
         }
         else
         {
            v2[i2]=v[i];
            i2++;
         }
     printf("\n\nEcco i tre vettori:");
     printf("\n\nTutti:");
     stampa(v,MAX);
     printf("\n\nMinori:");
     stampa(v1,i1);
     printf("\n\nMaggiori o uguali:");
     stampa(v2,i2);
     getch();
     return 0;
    }
    /*----------------------------------------------------------------------------*/
    /*stampa il vettore v di dimensione n*/
    void stampa (int *v, int n)
    {
     int i;
     printf("\n--------------------");
     for (i=0;i<n;i++)
         printf("\n%d",v[i]);
    }
    

    In pratica gli hai dato l'esercizio completamente svolto , ottimo consiglio
  • Re: Programmino vettori

    BCPL ha scritto:


    maxilrosso ha scritto:


    Prova a vedere se ti va bene (NB: mancano gli include, mettili tu)
    
    
    /*define*/
    #define MAX 5
    /*prototipi*/
    void stampa(int*,int);
    /*main*/
    int main()
    {
     int i,n;
     int v[MAX],v1[MAX],v2[MAX];
     printf("Inserisci i %d numeri:\n\n",MAX);
     for (i=0;i<MAX;i++)
     {
         printf("v[%d]: ",i);
         scanf("%d",&v[i]);
     }
     printf("\nInserisci il numero sul quale fare il confronto: ");
     scanf("%d",&n);
     int i1,i2; /*i due indici che scorrono su v1 e v2*/
     i1=i2=0;
     for (i=0;i<MAX;i++)
         if (v[i]<n)
         {
            v1[i1]=v[i];
            i1++;
         }
         else
         {
            v2[i2]=v[i];
            i2++;
         }
     printf("\n\nEcco i tre vettori:");
     printf("\n\nTutti:");
     stampa(v,MAX);
     printf("\n\nMinori:");
     stampa(v1,i1);
     printf("\n\nMaggiori o uguali:");
     stampa(v2,i2);
     getch();
     return 0;
    }
    /*----------------------------------------------------------------------------*/
    /*stampa il vettore v di dimensione n*/
    void stampa (int *v, int n)
    {
     int i;
     printf("\n--------------------");
     for (i=0;i<n;i++)
         printf("\n%d",v[i]);
    }
    

    In pratica gli hai dato l'esercizio completamente svolto ...
    ...ma decisamente migliorabile. L'OP può riscrivere molto meglio il programma in oggetto.
Devi accedere o registrarti per scrivere nel forum
4 risposte