Problema con interi

di il
5 risposte

Problema con interi

Ciao a tutti. Da poco mi sono avvicinato alla programmazione in C. Sto seguendo il corso completo di programmazione C dei Deitel. Adesso devo devo scrivere un programma che legga 5 interi e quindi determini e visualizzi il maggiore. Il programma funziona quando i maggiori sono i primi due interni ma con gli altri no. Posto il codice spero che qualcuno mi possa dare una mano. Grazie in anticipo

#include<stdio.h>
int main()
{
int integer1;
int integer2;
int integer3;
int integer4;
int integer5;

printf("Inserisci cinque interi:\n");
scanf("%d%d%d%d%d", &integer1, &integer2, &integer3, &integer4, &integer5);

if (integer1 > integer2) {
	if (integer1 > integer3) {
		if (integer1 > integer4) {
			if (integer1 > integer5)
			printf("L'intero maggiore è: %d\n", integer1);
		}
	}
	else if (integer1 > integer3) {
		if (integer1 > integer4) {
			if (integer1 < integer5)
			printf("L'intero maggiore è: %d", integer5);
		}
	}
	else if (integer1 > integer3) {
		if (integer1 < integer4){
			if (integer4 > integer5)
			printf("L'intero maggiore è: %d", integer4);
		}
	}
	else if (integer1 < integer3){
		if (integer3 > integer4) {
			if (integer3 > integer5)
			printf("L'intero maggiore è: %d", integer3);
		}
	}
}

if (integer2 > integer1) {
	if (integer2 > integer3) {
		if (integer2 > integer4) {
			if (integer2 > integer5)
			printf("L'intero maggiore è: %d\n", integer2);
		}
	}
	else if (integer2 > integer3) {
		if (integer2 > integer4) {
			if (integer2 < integer5)
			printf("L'intero maggiore è: %d", integer5);
		}
	}
	else if (integer2 > integer3) {
		if (integer2 < integer4){
			if (integer4 > integer5)
			printf("L'intero maggiore è: %d", integer4);
		}
	}
	else if (integer2 < integer3){
		if (integer3 > integer4) {
			if (integer3 > integer5)
			printf("L'intero maggiore è: %d", integer3);
		}
	}
}

return 0;
}

5 Risposte

  • Re: Problema con interi

    Questo problema si risolve creando un array di 5 interi e tenendo traccia del maggiore nel attraversamento del array.
    
    int v[5] = {5,7,9,1,3};
    int max = 0;
    for(i = 0; i < 5; i++)
    {
        if(max < v[i])
              max = v[i];
    }
    
    printf("il massimo è %d",max); //stamperà 9
    
  • Re: Problema con interi

    Naa! Stavo per rispondere io!
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    
    int main() {
       int inter[5];
       int i;
       for (i = 0; i <= 4; i++) {
          printf("Inserisci l'intero numero %d: ",i+1);
          scanf("%d",&inter[i]);
       }
       int a;
       int grande = inter[0];
       for (a = 1; a <= 4; a++) {
          if (inter[a] > grande) {
             grande = inter[a];
          }
       }
       printf("Il numero piu\' grande inserito e\' %d",grande);
       getch();
       return 0;
    }
    Comunque il mio esempio vale anche per i negativi.
  • Re: Problema con interi

    A cosa serve la libreria conio.h?
    se la lascio non riesco a compilarlo per un fatal error. Se invece tolgo la libreria e l'istruzione getch();
    riesco a compilarlo e funziona bene.
  • Re: Problema con interi

    Conio.h non è un header standard del C come specificato anche quà:
    http://en.wikipedia.org/wiki/Conio.
    Quindi è meglio non usarlo.E meglio invece usare getchar oppure getc che fanno la stessa cosa ma sono standard.
  • Re: Problema con interi

    Se ti dà errore togli #include <conio.h> e al posto di getch(); metti system("PAUSE>NUL");
    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
       int inter[5];
       int i;
       for (i = 0; i <= 4; i++) {
          printf("Inserisci l'intero numero %d: ",i+1);
          scanf("%d",&inter[i]);
       }
       int a;
       int grande = inter[0];
       for (a = 1; a <= 4; a++) {
          if (inter[a] > grande) {
             grande = inter[a];
          }
       }
       printf("Il numero piu\' grande inserito e\' %d",grande);
       system("PAUSE>NUL");
       return 0;
    }
    system("PAUSE>NUL"); serve per mettere in pausa, così quando vai ad aprire l'eseguibile ti mette in pausa automaticamente. Funziona solo su Windows però... perchè PAUSE è un comando del MS - DOS.
Devi accedere o registrarti per scrivere nel forum
5 risposte