Newsgroup: it.comp.lang.c
Titolo: Cosa inspiegabile!..variabile impazzita!

ho questo listato:
#include<stdio.h>
int giorno,mese,ora,Segno,decade;
main()
{
   printf("Giorno di Nascita : ");
   scanf("%d",&giorno);
   printf("Mese di Nascita : ");
   scanf("%d",&mese);
   printf("Ora di Nascita : ");
   scanf("%d",&ora);
   switch(mese)
   {
	  case 1:
	     if (giorno<=20)
			 Segno=10;
		 else
			 Segno=11;
		 break;
	  case 2:
	     if (giorno<=19)
			 Segno=11;
		 else
			 Segno=12;
		 break;
      case 3:
	     if (giorno<=20)
			 Segno=12;
		 else
			 Segno=1;
		 break;
            case 4:
	     if (giorno<=20)
			 Segno=1;
		 else
			 Segno=2;
		 break;
      case 5:
	     if (giorno<=20)
			 Segno=2;
		 else
			 Segno=3;
		 break;
		 case 6:
	     if (giorno<=21)
			 Segno=3;
		 else
			 Segno=4;
		 break;
		 case 7:
	     if (giorno<=22)
			 Segno=4;
		 else
			 Segno=5;
		 break;
		 case 8:
	     if (giorno<=23)
			 Segno=5;
		 else
			 Segno=6;
		 break;
		 case 9:
	     if (giorno<=22)
			 Segno=6;
		 else
			 Segno=7;
		 break;
		 case 10:
	     if (giorno<=22)
			 Segno=7;
		 else
			 Segno=8;
		 break;
		 case 11:
	     if (giorno<=22)
			 Segno=8;
		 else
			 Segno=9;
		 break;
		 case 12:
	     if (giorno<=21)
			 Segno=9;
		 else
			 Segno=10;
		 break;
}
switch(Segno)
{
	case 1:
		 if (mese=3)
		    decade=1;
		 else
			 if (giorno>=10)
		        decade=3;
			 else
				    decade=2;
	break;
    case 2:
		 if (mese=4)
		    decade=1;
		 else
			 if (giorno>=11)
		        decade=3;
			 else
				    decade=2;
	break;
	case 3:
		 if (mese=5)
		    decade=1;
		 else
			 if (giorno>=10)
		        decade=3;
			 else
				    decade=2;
	break;
	case 4:
		 if (mese=6)
		    decade=1;
		 else
			 if (giorno>=12)
		        decade=3;
			 else
				    decade=2;
	break;
	case 5:
		 if (mese=7)
		    decade=1;
		 else
			 if (giorno>=12)
		        decade=3;
			 else
				    decade=2;
	break;
	case 6:
		 if (mese=8)
		    decade=1;
		 else
			 if (giorno>=13)
		        decade=3;
			 else
				    decade=2;
	break;
	case 7:
		 if (mese=9)
		    decade=1;
		 else
			 if (giorno>=13)
		        decade=3;
			 else
				    decade=2;
	break;
	case 8:
		 if (mese=10)
		    decade=1;
		 else
			 if (giorno>=12)
		        decade=3;
			 else
				    decade=2;
	break;
	case 9:
		 if (mese=11)
		    decade=1;
		 else
			 if (giorno>=12)
		        decade=3;
			 else
				    decade=2;
	break;
	case 10:
		 if (mese=12)
		    decade=1;
		 else
			 if (giorno>=11)
		        decade=3;
			 else
				    decade=2;
	break;
	case 11:
		 if (mese=1)
		    decade=1;
		 else
			 if (giorno>=10)
		        decade=3;
			 else
				    decade=2;
	break;
	case 12:
		 if (mese=2)
		    decade=1;
		 else
			 if (giorno>=11)
		        decade=3;
			 else
				    decade=2;
	break;
}
printf("La decade e\' %d", decade);
printf("\n Mese : %d", mese);
printf("\n Giorno : e\' %d", giorno);
}
alla fine il mese viene sempre decrementato di 1!!!
se metto 8 mi memorizza 7, se metto 6 mi memorizza 5 etc etc..
grazie
--------------------------------
Inviato via 
http://usenet.libero.it

if(mese=3)
devi mettere == non =.
Una volta che avrai corretto le 2.000 righe incriminate in questo modo forse
funzionera'!
Tommy

 se metto 8 mi memorizza 7, se metto 6 mi memorizza 5 etc etc..
Beh, non e' inspiegabile e ... non e' una variabile impazzita..... umh:
