Scrivere il numero più grande

di il
10 risposte

Scrivere il numero più grande

Salve, la traccia del mio esercizio è questa:
Scrivete una funzione con prototipo void max_secondmax ( int a[], int n, int *max, int *second_max )
che, dato un array a di lunghezza n individui il valore più grande in a e il secondo elemento per grandezza in a, e li
memorizzi nelle variabili puntate da max e second_max.

Non riesco a ricordare un modo per segnare il numero più grande e ricordarlo per stamparlo poi. Allego il codice che ho scritto (ovviamente l'if è sbagliato, ho provato a farlo in quel modo ma non va, penso d'aver sbagliato a scrivere la condizione)

#include<stdio.h>
#define N 100

void max_secondmax(int a[], int n, int *max, int *second_max);

int main(){
	int n=0, a[N], i;
	int *max;
	int *second_max;
	
	printf("Quanti numeri vuoi nel vettore(massimo 100): ");
	scanf("%d", &n);
	
	printf("\nInserisci i numeri:\n");
	for(i=0;i<n;i++){
		scanf("%d", &a[i]);
	}
	
	printf("\n\nI numeri sono: ");
	for(i=0;i<n;i++){
		printf("\n");
		printf("%d", a[i]);
	}
	max_secondmax(a, n, max, second_max);
}

void max_secondmax(int a[], int n, int *max, int *second_max){
	int m=0, s=0, j, i;
	
	for(i=0;i<n;i++){
		if(a[i]>a[i+1]){
			m=a[i];
		}
	}
	printf("\n\nIl numero piu' grande e': %d", m);
}
So di dover salvare i puntatori poi, ma vorrei prima capire come fare e poi mettere i puntatori :)

10 Risposte

  • Re: Scrivere il numero più grande

    Comincia a risolvere l'esercizio cercando il solo max dentro la funzione main()
  • Re: Scrivere il numero più grande

    Weierstrass ha scritto:


    Comincia a risolvere l'esercizio cercando il solo max dentro la funzione main()
    il problema penso sia proprio quello ahah. Non so come dirgli di prendere il numero più grande
  • Re: Scrivere il numero più grande

    Scriviti cinque biglietti con cinque numeri a caso, mettili in fila, e osserva bene le operazioni che fai tu a mente per scegliere il massimo tra quei cinque.
  • Re: Scrivere il numero più grande

    Weierstrass ha scritto:


    Scriviti cinque biglietti con cinque numeri a caso, mettili in fila, e osserva bene le operazioni che fai tu a mente per scegliere il massimo tra quei cinque.
    ho provato a scrivere questa funzione:
    
    void max_secondmax(int a[], int n, int *max, int *second_max){
    	int m=0, s=0, j, i;
    	
    	a[j]=a[i];
    	for(i=0;i<n;i++){
    		if(a[i]>a[j]){
    			m=a[i];
    			j++;
    		}else{
    			m=a[j];
    			j++;
    		}
    	}
    	printf("\n\nIl numero piu' grande e': %d", m);
    }

    ma mi stampa l'ultimo numero inserito, giustamente.. non so come fargli ricordare il numero vecchio, cioè il concetto che cerco di implementare è "se a è maggiore di a[j], ricorda a e implementa j per controllare il numero dopo" , ho provato a farlo pure con un semplice while senza i++, ma non va :(
  • Re: Scrivere il numero più grande

    Non ti si può aiutare su questo. Se non riesci a risolverlo da solo, è inutile andare avanti a fare cose più complicate.

    Sicuramente mentre scorri i foglietti terrai a mente il massimo provvisorio e a ogni passaggio confronterai il nuovo elemento con il massimo provvisorio, finché non arrivi alla fine. Qui invece di usare la mente userai una variabile
  • Re: Scrivere il numero più grande

    Non hai un manuale di riferimento da studiare? magari con degli esercizi svolti ?
  • Re: Scrivere il numero più grande

    Weierstrass ha scritto:


    Non ti si può aiutare su questo. Se non riesci a risolverlo da solo, è inutile andare avanti a fare cose più complicate.

    Sicuramente mentre scorri i foglietti terrai a mente il massimo provvisorio e a ogni passaggio confronterai il nuovo elemento con il massimo provvisorio, finché non arrivi alla fine. Qui invece di usare la mente userai una variabile
    ho risolto così alla fine:
    void max_secondmax(int a[], int n, int *max, int *second_max){
    	int m=0, s=0, j, i;
    	
    	m=a[0];
    	for(i=0;i<n;i++){
    		if(m<a[i]){
    			m=a[i];
    		}
    	}
    	printf("\n\nIl numero piu' grande e': %d", m);
    }
    grazie dell'aiuto :)
  • Re: Scrivere il numero più grande

    gian82 ha scritto:


    Non hai un manuale di riferimento da studiare? magari con degli esercizi svolti ?
    ho un libro che uso per l'università, ma in alcuni punti non è molto chiaro e non ha molti esercizi svolti :(. Poi spesso è anche colpa mia che non capisco determinate cose ahaha
  • Re: Scrivere il numero più grande

    Che facoltà frequenti?
  • Re: Scrivere il numero più grande

    oregon ha scritto:


    Che facoltà frequenti?
    informatica, sto al primo anno e sto recuperando un po' di cose, sono un po' in ritardo ahah
Devi accedere o registrarti per scrivere nel forum
10 risposte