Allora..si compila e da il risultato desiderato. Effettivamente dim meglio 100..cmq fatto anche esercizio completo..compila e da risultato..ma forse un po' troppo lungo...
Un metodo per accorciarlo??
/*Scrivere un programma C che:
· Legga da tastiera una sequenza (di lunghezza non nota a priori) di numeri positivi e calcoli il
massimo della somma di ogni numero inserito e del suo precedente (cioè il massimo tra: il
primo + il secondo, il secondo + il terzo, il terzo + il quarto,…). La sequenza termina
quando viene inserito un numero negativo
· Per determinare il massimo fra due numeri si implementi la funzione
int max (int n1, int n2) che restituisce il massimo fra n1 e n2
· Il programma deve visualizzare il valore massimo calcolato
ESEMPIO:
Data la sequenza di numeri: 1 5 7 9 3 12 3 0 -1
Il programma deve produrre un output del tipo: il massimo è 16
*/
int max(int n1, int n2);
#include<stdio.h>
#define dim 100
int main(){
int num=0;
int seq[dim];
int somma[dim];
int ris[dim];
int massimo;
printf("Inserisci la sequenza di numeri terminata da un numero negativo\n");
int i=0;
while(num!=-1){
scanf("%d",&num);
seq[i]=num;
i++;
}
printf("Stampo la sequenza inserita :\n");
for(i=0;i<seq[i];i++){
printf(" %d ",seq[i]);
}
for(i=0;i<dim;i++){
somma[i]=seq[i]+seq[i+1];
}
printf("\n");
printf("la somma e' :\n");
for(i=0;i<seq[i];i++){
printf(" %d ",somma[i]);
}
for(i=0;i<dim;i++){
ris[i]=max(somma[i],somma[i+1]);
if(ris[i]>ris[i+1]) {
massimo=ris[i];
}else{
massimo=ris[i+1];
}
}
printf("\n");
printf("il massimo e' :\n");
printf(" %d ",&massimo);
return 0;
}
int max(int n1, int n2){
int risultato=n2;
if(n1>n2)
risultato=n1;
else
return risultato;
}