in
La comunità italiana dedicata a Sviluppatori e Architetti IT delle piattaforme Windows

aiuto sui vettori

Ultimo messaggio ricevuto il 24-05-2007 15.23 da monny. 4 risposta(e).
Pagina 1 di 1 (5 elemento/i)
Ordina messaggi: Precedente Successivo
  • 22-05-2007 19.31

    • monny
    • Utente Top 500
    • Registrato il 22-05-2007
    • Messaggi 4

    aiuto sui vettori

    Buonasera,

    Sto imparando a usare c ma ho dei grossi problemi..uno dei quali sta in questo esercizio che dice : letto un vettore e due interi che corrispondono a due indici scambiare di postogli elem del vettore corrispondenti a tali indici!!ho provato a farlo ma nn mi scambia ...nn capisco il perchè?nn è che m sapete dare qualche aiutino?grazie in anticipo!!

    • Log
  • 23-05-2007 8.41 In risposta a

    Re: aiuto sui vettori

    Posta sul forum il codice che hai scritto, così potremo dargli un'occhiata.
    • Log
  • 23-05-2007 9.38 In risposta a

    • monny
    • Utente Top 500
    • Registrato il 22-05-2007
    • Messaggi 4

    Re: aiuto sui vettori

    sono riuscita a risolvere il problema da sola!!grazie lo stesso..Però ora mi trovo incasinata su un'altro es. il pezzo del codice è questo:

    printf("\n\n");
    for(i=0; i<N; i++){
        for(j=0; j<2; j++){
           S[ i][0] = 245+rand()%325;
           S[ i][1] = 18+rand()%13;
           }
        }

    //visualizzazione della matrice
    printf("Matricola\tVoto\n");
    for(i=0; i<N; i++){

          printf("%d\t\t%d\n",S[ i][0],S[ i][1]);

         }


    printf("\n");
    printf("\nInserisci un voto: \n");
    for(i=0; i<N; i++){
       scanf("%d",&S[ i][1]);
       if(S[ i][1]>=18 && S[ i][1]<31)
         printf("Matricole con il voto %d sono: %d \n",S[ i][1],S[ i][0]);

       else
         printf("\nNessuno studente ha riportato il voto %d",S[ i][1] );

    Mi da problemi sul pezzo di codice che ho evidenziato..va in esecuzione ma con risultati sbagliati, inserendo un voto m dovrebbe elencare tutte le matricole che hanno avuto quel voto e invece mi stampa solamente la matricola che sta all'inizio del codice!!Il codice secondo me è giusto! Sad

    • Log
  • 23-05-2007 11.15 In risposta a

    Re: aiuto sui vettori

    Non mi è molto chiaro... comunque su:
    scanf("%d",&S[ i][1]);
    direi che dovresti eseguire scanf su una variabile diversa dalla matrice (array) S. Ad esempio:
    int voto;  scanf ("%d", &voto);

    Poi, sostituirei:
    if (S[ i][1]>=18 && S[ i][1]<31)
    printf("Matricole con il voto %d sono: %d \n",S[ i][1],S[ i][0]);

    con
    if (S[ i][1]== voto)
    printf("Matricola %d ha voto %d\n", i, voto);
    • Log
  • 24-05-2007 15.23 In risposta a

    • monny
    • Utente Top 500
    • Registrato il 22-05-2007
    • Messaggi 4

    Re: aiuto sui vettori

    help.....

    nn riesco a fare la fusione di due matrici...postoqui il codice qualcuno mi aiuti!!! grazie!!

    ps(il pezzo evidenziato mi da errori)

    #include <stdio.h>
    #include <stdlib.h>
    #define N 5

    main()
    {
    int mNo[2],tNo[2],zNo[2],i,j,i2,j2,i3,j3;
    int park[2],k,p;
    srand(time(NULL));


    printf("\n\n");
        printf("\nPrima matrice\n");
        printf("\nMatricola Voto\n");
        for(i=0; i<N; i++){
               for(j=0; j<2; j++){
               mIdea[0] = 100+rand()%231;
               mIdea[1] = 18+rand()%13;
               printf("   %d ", mIdea[j]);

           }
         printf("\n");
       }

    printf("\n\n");
        printf("\nSeconda matrice\n");
        printf("\nMatricola Voto\n");
        for(i2=0; i2<N; i2++){
               for(j2=0; j2<2; j2++){
               t[i2][0] = 100+rand()%231;
               t[i2][1] = 18+rand()%13;
               printf("   %d ", t[i2][j2]);

           }
         printf("\n");
       }

    //Ordinamento della prima matrice
    p=N-1;
    do{
     k=0;
     for(i=0; i<N; i++)
         if(mIdea[0]>m[i+1][0])
           {
            park[0] = mIdea[0];
            park[1] = mIdea[1];
            mIdea[0] = m[i+1][0];
            mIdea[1] = m[i+1][1];
            m[i+1][0] = park[0];
            m[i+1][1] = park[1];

            k=1;
           }
           p--;
    }while(k==1);
    printf("\nPrima matrice ordinata\n");
        printf("\nMatricola Voto\n");
        for(i=0; i<N; i++){
               for(j=0; j<2; j++){

               printf("   %d ", mIdea[j]);

           }
         printf("\n");
       }

    //Ordinamento della seconda matrice
    p=N-1;
    do{
     k=0;
     for(i2=0; i2<N; i2++)
         if(t[i2][0]>t[i2+1][0])
           {
            park[0] = t[i2][0];
            park[1] = t[i2][1];
            t[i2][0] = t[i2+1][0];
            t[i2][1] = t[i2+1][1];
            t[i2+1][0] = park[0];
            t[i2+1][1] = park[1];

            k=1;
           }
           p--;
    }while(k==1);
    printf("\nSeconda matrice ordinata\n");
        printf("\nMatricola Voto\n");
        for(i2=0; i2<N; i2++){
               for(j2=0; j2<2; j2++){

               printf("   %d ", t[i2][j2]);

           }
         printf("\n");
       }


    //Fusione delle matrici ordinate

    do{
      if(mIdea[j] <= t[i2][j2])
        z[i3++][j3++] = m[i++][j++];
      else
        z[i3++][j3++] = t[i2++][j2++];
    }while(i<N && j<N);


    if(i<N)
      for(; i<N; z[i3++][j3++] = m[i++][j++]);
    else
      for(; i<N;  z[i3++][j3++] = t[i2++][j2++]);

    for(i=0; i<i3; i++){
               for(j3=0; j3<2; j3++){

               printf("   %d ", z[i3][j3]);

           }
         printf("\n");
       }

    fflush(stdin);
    getchar();
    }

    • Log
Pagina 1 di 1 (5 elemento/i)
Prelevato da http://www.devspy.com/forums/p/4524/5550.aspx
DevSpy.com 6.0 © 2001-2008 - Alcuni Diritti Riservati
Salvo diversa indicazione, tutti i contenuti sono pubblicati sotto licenza "Creative Commons Attribution-Share Alike 3.0"