#include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX 100 void max_secondmax(int a[], int n, int *max, int *secondmax); int main(int argc, char** argv) { setvbuf(stdout, 0, _IONBF, 0); int a[MAX]; int n = 0; printf("quanti valori vuoi considerare?\n\n"); scanf("%d", &n); int i=0; srand(time(NULL)); for(i=0; i<n; i++) { a[i] = rand() % 100; printf("elemento di posto %d, valore %d\n", i, a[i]); } int max, secondmax; max_secondmax(a, n, &max, &secondmax); printf("max %d\n", max); printf("secondmax %d\n", secondmax); printf("fine!\n\n"); return (EXIT_SUCCESS); } void max_secondmax(int a[], int n, int *max, int *secondmax) { if (n < MAX) { int i; *max = a[0]; *secondmax = 0;//a[0]; for(i=1; i<n; i++) { printf("*** elemento di posto %d, valore %d\n", i, a[i]); if (a[i] > *max) { *secondmax = *max; *max = a[i]; } else if (a[i] > *secondmax) { *secondmax = a[i]; } printf("*** %d, %d, %d, %d\n", i, a[i], *max, *secondmax); } } }