Salve a tutti, ho un problema con un programma, che apparentemente esce, quindi funziona, pero lo fa quando gli pare: a volta funziona, altre no, ecc,ecco il codice:
main()
{
int v[10];
int i,j,t;
int flag=0;
printf("\n");
int operazione;
while(flag==0){
printf("inserisci opzione 1 per cominciare :");
scanf("%d",&operazione);
printf("\n");
printf("\n");
switch(operazione){
case 1:
printf("inserici valori:");
for(i=0;i<10;i++){
scanf("%d",&v[i]);
}
case 2:
for(i = 0; i<10; i++){
for(j =0; j<10-i; j++){
if(v[j]>v[j+1]){
t = v[j];
v[j] = v[j+1];
v[j+1] = t;
}
}
}
printf("valore min:%d\n",v[0]);
printf("\n");
case 3:
for(i = 0; i<10; i++){
for(j = 0; j<10-i; j++){
if(v[j]<v[j+1]){
t = v[j];
v[j]= v[j+1];
v[j+1] = t;
}
}
}
printf("valore max:%d\n",v[0]);
printf("\n");
break;
default :
printf("valore errato , ripeti se vuoi:\n");
}
printf("inserisci 0 se vuoi continuare, 1 se lasciare:");
scanf("%d",&flag);
}
praticamente questo ripete ogni volta il caricamento del vettore e poi ogni volta vede il min e il max, solo che tipo dopo 2 volte che ripeto l operazione mi da il valore min dell operazione prima, mi spiego meglio:
inserisco per la prima volta i valori e il max e min sono: 3 e 100(giusto)
2^a volta : 4-103 (giusto)
3^ volta : 4- 607( sbagliato perche mi prende il valore min della seconda...)
non so perche faccia cosi, se potete aiutarmi, grazie