Итак, я работаю над программой Правил c от Zeller, пытаясь разбить 4-хзначное int, представляющее год конкретной даты, на 2 разные int-переменные, содержащие первые 2 и последние 2 цифры указанного года. *
void main()
{
int day, month, year;
.
.
.
printf("Enter a Year: ");
scanf("%i",&year);
.
.
.
int data, i;
int split[3];
for(i=3 ; i>=0 ; i--) //Problem is in the loop
{
data = year % 10;
split[i] = data;
year /= 10;
printf("Data%i: %i, should be %i\n", i, split[i], data);
}
}
Вышеприведенный код выводит: (int year = 1234)
Data3: 0, should be 4
Data2: 0, should be 0
Data1: 0, should be 0
Data0: 0, should be 0
Однако, если я изменю цикл, обозначенный как проблема выше, как:
int data, i;
int split[3];
for(i=3 ; i>=0 ; i--) //Data is all there, correctly
{ //Problem arises when I try to store to my array
data = year % 10;
year /= 10;
printf("Data%i: should be %i\n", i, data);
}
вывод вышеуказанных изменений кода: (int year = 1234)
Data3: should be 4
Data2: should be 3
Data1: should be 2
Data0: should be 1
Я совершенно не понимаю, почему программа 0 отключает все, как только я пытаюсь поместить данные, которые ТАМ, в мой массив. Меня часами мучает головная боль, поскольку я, очевидно, понятия не имею, в чем проблема.