Así que estaba escribiendo este sencillo programa para calcular el día de cualquier fecha usando el algoritmo gaussiano encontrado here.'no se declaró en este ámbito' error
#include <iostream>
using namespace std;
//Using the Gaussian algorithm
int dayofweek(int date, int month, int year){
int d=date;
if (month==1||month==2)
{int y=((year-1)%100);int c=(year-1)/100;}
else
{int y=year%100;int c=year/100;}
int m=(month+9)%12+1;
int product=(d+(2.6*m-0.2)+y+y/4+c/4-2*c);
return product%7;
}
int main(){
cout<<dayofweek(19,1,2054);
return 0;
}
Es un programa muy simple y lo que es aún más desconcertante es la salida.
:In function dayofweek(int, int, int)’:
:19: warning: unused variable ‘y’
:19: warning: unused variable ‘c’
:21: warning: unused variable ‘y’
:21: warning: unused variable ‘c’
:23: error: ‘y’ was not declared in this scope
:25: error: ‘c’ was not declared in this scope
Dice que mi variable no está en uso pero luego dice que no está declarada? ¿Alguien podría decirme qué está mal?
Las variables locales no son visibles fuera del bloque '{}' donde se declaran. – DCoder