Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521

    [C] Problemi di compilazione con gcc e % (modulo)

    Non è la prima volta che riscontro un problema di compilazione (mi dice che non è un operatore binario valido) usando "%" come modulo, questo usando il gcc come compilatore (sotto linux), mi piacerebbe sapere se altri che usano il gcc hanno riscontrato questo problema, oltre tutto faccio riferimento a un esercizio sulla ricorsione presente nel libro "Linguaggio C" di Bellini & Guidi, la mia risoluzione coincide con la risoluzione elencata in fondo al libro per cui escluderei eventuali errori, comunque la riporto qui sotto:

    /* Funzione ricorsiva per il calcolo del massimo comun divisore */

    int mcd(int t, int k) {
    if(k==0)
    return(t);
    else
    if(k>t)
    return(mcd(k, t);
    else
    return(mcd(k, t%k);
    }

    Devo dire che questo problema si presenta raramente e sinceramente mi sono fatto un "my_math.h" in cui ho incluso una funzione che sostituisce "%", però sarei veramente curioso di capire se è un bug o qualche cosa che non riesco a vedere io (tenete presente che, per quanto riguarda la programmazione, sono un newbie )

    Saluti
    Gigi
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  2. #2
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    ...up :quote:
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    62
    Ciao Wolf.

    Appena ho tempo verifico anche io.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    62
    Ho controllato la tua funzione scrivendo il seguente programma:

    #include <stdio.h>
    #include <stdlib.h>

    int mcd(int t, int k)
    {
    if (k == 0)
    return(t);
    else
    if (k > t)
    return(mcd(k, t));
    else
    return(mcd(k, t % k));
    }

    main()
    {
    int n;
    int m;
    printf("Primo numero: \n");
    scanf("%d", &n);

    printf("Secondo numero : \n");
    scanf("%d", &m);

    printf("\nMinimo Comun Denominatore: %d\n", mcd(n, m));
    }

    e compilandolo con la seguente istruzione:

    gcc wolf.c -o wolf -lm

    Sul mio computer (uso RH 7.2) l'eseguibile funziona correttamente. Fammi conoscere le tue impressioni.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    62
    ehm....

    Inutile dichiarare stdlib.h e usare "-lm". Funziona benissimo anche senza.

  6. #6
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Grazie Occam , comunque ho capito, nonostante abbia riportato quel listato, nel mio file avevo usato double al posto di int e in quel caso da quell'errore, ho cambiato tutti i tipi in int e si è compilato senza problemi.

    Ciao
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.