Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    segmentation fault

    Ciao a tutti,

    sto svolgendo un'esercizio :"Scrivete una funzione con prototipo int *smallest( int a[], int n ) che, dato un array a di lunghezza n, restituisca
    un puntatore all’elemento più piccolo dell’array."

    ecco il codice che ho scritto:

    #include <stdio.h>

    #define N 10



    int *smallest (int a[], int n) {


    int *p = &a[0];

    int i;



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

    if (a[i] < *p)

    *p = a[i];

    }

    return p;
    }



    int main (void) {



    int a[N], *p, i;



    printf("^^^^*****Questo programma restituisce il più piccolo elemento di un array*****^^^^\n\n");

    printf("Inserire 10 numeri: ");



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

    scanf("%d", &a[i]);

    }



    *p = *smallest(a, N);



    printf("Il più piccolo valore dell'array è: %d", *p);

    }



    in compilazione mi da il seguente errore:


    ^^^^*****Questo programma restituisce il pi� piccolo elemento di un array*****^^^^

    Inserire 10 numeri: 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Segmentation fault


    Cosa significa?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,464

    Re: segmentation fault

    In rosso le modifiche

    codice:
    #include <stdio.h>
    
    #define N 10
    
    int *smallest (int a[], int n) 
    {
      int *p = &a[0];
      int i;
      for (i = 0; i < n; i++)
      {
         if (a[i] < *p)
            *p = a[i];
      }
    
      return p;
    }
    
    
    int main (void) 
    {
       int a[N], *p, i;
    
       printf("^^^^*****Questo programma restituisce il più piccolo elemento di un   array*****^^^^\n\n");
    
       printf("Inserire 10 numeri: ");
    
       for (i = 0; i < N; i++) 
       {
          scanf("%d", &a[i]);
       } 
    
       p = smallest(a, N);
    
       printf("Il più piccolo valore dell'array è: %d", *p);
    }

    P.S. Usa i tag CODE se vuoi avere risposte veloci ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di KrOW
    Registrato dal
    Feb 2009
    Messaggi
    281
    È vero anche che quel codice modifica il primo elemento dell' array e non credo che sia accettabile per la risoluzione dell' esercizio ... Magari prova così :
    codice:
    int* smallest( int a[], int n )
    {
    int* p = &a[0];
    int i;
    for( i=0; i<n; i++ )
    {
    if( a[i] < *p )
    p = &a[i];
    }
    return p;
    }
    Per il codice rimanente, è lo stesso codice di oregon . . .
    C++ 4ever
    496e2062696e6172696f206e6f6e2063692061767265737469 206e656d6d656e6f2020726f7661746f203a29

  4. #4
    grazie mille!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Re: Re: segmentation fault

    Originariamente inviato da oregon
    P.S. Usa i tag CODE se vuoi avere risposte veloci ...
    Quoto e indico anche il Regolamento interno, dove al punto 6 si indica l'obbligo di usarli quando si posta il codice.


    Ciao.
    "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

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.