|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Apr 2013
Messaggi: 13
|
[C] puntatore ad una funzione
[C] IDE : Code::Blocks (un grazie di cuore a chi mi ha suggerito di lasciare Dev-C++!!)
S.O. : Windows 7 Ciao ragazzi, eccomi di nuovo qui con una nuova richiesta d'aiuto ![]() Ho il seguente esercizio da fare : " Creare due funzioni a e b La funzione a restituisce il valore passato come parametro aumentato di 10 La funzione b restituisce il valore passato come parametro aumentato di 15 Creare un puntatore a funzione con il nome f Chiedere all'utente di digitare il numero 1 o 2 Se l'utente digita il numero 1 eseguire la funzione a altrimenti eseguire la funzione b richiamate dal puntatore." Ora, io ho fatto una versione funzionante senza puntatore. Ho provato ad inserire il puntatore ma mi crasha... Codice:
int incr10 (int x){ return (x + 10);} int incr15 (int x){ return (x +15); } int main(int argc, char *argv[]) { int x,scelta; printf ("Inserisci un valore intero per x : "); scanf("%d",&x); printf("Scegli se incrementare il valore x di 10 o di 15.\nDigita 1 per la prima opzione, 2 per la seconda : "); scanf("%d",&scelta); if (scelta == 1){ printf("%d\n",incr10(x)); } else if (scelta == 2){ printf("%d\n",incr15(x)); } |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Apr 2013
Messaggi: 13
|
penso di aver risolto...ci ho messo 3 ore ma alla fine...
![]() Codice:
#include <stdio.h> #include <stdlib.h> int incr10 (int x){ return (x + 10);} int incr15 (int x){ return (x +15); } int main(int argc, char *argv[]) { int x,scelta; int (*f)(int x); printf ("Inserisci un valore intero per x : "); scanf("%d",&x); printf("Scegli se incrementare il valore x di 10 o di 15.\nDigita 1 per la prima opzione, 2 per la seconda : "); scanf("%d",&scelta); if (scelta == 1){ f=incr10; printf("%d\n",f(x)); } else if (scelta == 2){ f=incr15; printf("%d\n",f(x)); } return 0; } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:22.