Ciao, questa e' la soluzione al primo esercizio:
/**
* @file main.c
* @date 15/07/2010
* @note Scrivere la definizione di una funzione "IsPositive" che dato come
*+ parametro un numero intero, restistiusce 1 se il numero è pari,
*+ 0 se è dispari.
* Scrivere quindi un main in cui la funzione è richiamata più volte
*+ per indicare se ognuno dei numeri da 1 a 20 è pari o dispari.
*/
#include <stdio.h>
#define MAX_VAL (20)
/* Prototipi funzione */
unsigned short isPositive(int);
int main(void) {
unsigned short i;
for (i = 0; i < MAX_VAL; ++i) {
if (isPositive(i + 1)) printf("%2d e' pari.\n", i + 1);
else printf("%2d e' dispari.\n", i + 1);
}
return 0;
}
unsigned short isPositive(int n) {
return (n % 2) ? 0 : 1;
}
Fai attenzione pero', tu nella richiesta scrivi prima "positivo" o "negativo" e poi (nella parte finale), "pari" o "dispari"; dato che nell main dici di fare una prova da 1 al numero 20 immagino tu intendessi "pari" o "dispari". Se cosi' fosse pero', il nome della funzione ("isPositive") andrebbe cambiato.
Ed ecco la soluzione del secondo esercizio, scusa per i nomi brutti che ho dato alle funzioni ma l'ho fatto di fretta.
/**
* @file main.c
* @date 15/07/2010
* @note In un vettore "minime" di 8 numeri interi vengono memorizzate le
*+ temperature minime rilevate giornalmente nelle provincie sarde.
* Dichiarare il vettore quindi scrivere le funzioni per:
* 1. Caricare il vettore.
* 2. Trovare la temperatura minima più alta.
* 3. Dire quante temperature superano i 10 gradi.
*/
#include <stdio.h>
#define MAX_N (8)
#define TEMP_TO_SEARCH (10)
/* Prototipi funzione */
void carica_vettore (int*);
int minima_vettore (const int*);
int nminDieci_vettore (const int*);
int main(void) {
int minime[MAX_N];
int minima;
int nmin;
carica_vettore(minime);
minima = minima_vettore(minime);
nmin = nminDieci_vettore(minime);
printf("\nLa temperatura minima e' => %d\n", minima);
printf("N.ro temperature che superano i %d gradi => %d\n", TEMP_TO_SEARCH, nmin);
return 0;
}
void carica_vettore(int* v) {
int i;
for (i = 0; i < MAX_N; ++i) {
printf("# Inserisci temperatura n.ro %d: ", i + 1);
scanf("%d%*c", (v + i));
}
}
int minima_vettore(const int* v) {
int i;
int min = *v;
for (i = 1; i < MAX_N; ++i)
if (*(v + i) < min) min = *(v + i);
return min;
}
int nminDieci_vettore(const int* v) {
int i;
int n = 0;
for (i = 0; i < MAX_N; ++i)
if (*(v + i) > TEMP_TO_SEARCH) ++n;
return n;
}
Spero di esserti stato di aiuto.
Saluti, netburst.