Меня попросили найти выходные данные следующих сегментов кода.
Для любого выражения меня попросили оценить форму справа налево от моего учителя.
#include<iostream.h>
#include<conio.h>
int main()
{clrscr();
int a[]={10,20,30,40};
for(int i=0;i<3;)
a[i]=a[++i];
for(i=0;i<4;++i)
cout<<a[i]<<endl;
return(0);
}
Теперь, если я оцениваю строку 7 справа налево, мой вывод должен быть:
20
30
40
40
Но если я оцениваю слева направо, это будет
10
20
30
40
При запуске программы вывод был case2.
Вот еще один.
#include<iostream.h>
#include<conio.h>
int main()
{clrscr();
int a[]={10,20,30,40};
for(int i=0;i<3;)
a[++i]=a[i];
for(i=0;i<4;++i)
cout<<a[i]<<endl;
return(0);
}
На этот раз, когда я оценил форму справа налево:
10
20
30
40
и слева направо:
10
10
10
10
И после запуска я получил случай 1.
В каком направлении я действительно должен оценивать? Почему оба случая не совпадают?
Задача ещё не решена.