История изменений
Исправление X512, (текущая версия) :
C:
#include <stdio.h>
int main()
{
int arr[4];
int a, b, c;
a = 0;
b = 4;
c = a + (b - a)/2;
for (int i = a; i < c; i++) arr[i] = -1;
for (int i = c; i < b; i++) arr[i] = 1;
for (int i = a; i < b; i++) printf("%d\n", arr[i]);
return 0;
}
Вывод:
-1
-1
1
1
Lua:
arr = {}
a = 1
b = 4
c = a + (b - a) // 2
for i = a,c-1 do arr[i] = -1 end
for i = c,b do arr[i] = 1 end
for i = a,b do
print(arr[i])
end
Вывод:
-1
1
1
1
Так что fail. Причём в вашем случае даже чётная длина некорректно обрабатывается. Получилась наглядная демонстрация высокой вероятности ошибок при использовании индексов с 1.
Исправление X512, :
C:
#include <stdio.h>
int main()
{
int arr[4];
int a, b, c;
a = 0;
b = 4;
c = a + (b - a)/2;
for (int i = a; i < c; i++) arr[i] = -1;
for (int i = c; i < b; i++) arr[i] = 1;
for (int i = a; i < b; i++) printf("%d\n", arr[i]);
return 0;
}
Вывод:
-1
-1
1
1
Lua:
arr = {}
a = 1
b = 4
c = a + (b - a) // 2
for i = a,c-1 do arr[i] = -1 end
for i = c,b do arr[i] = 1 end
for i = a,b do
print(arr[i])
end
Вывод:
-1
1
1
1
Так что fail. Причём в вашем случае даже чётная длина некорректно обрабатывается.
Исходная версия X512, :
C:
#include <stdio.h>
int main()
{
int arr[4];
int a, b, c;
a = 0;
b = 4;
c = a + (b - a)/2;
for (int i = a; i < c; i++) arr[i] = -1;
for (int i = c; i < b; i++) arr[i] = 1;
for (int i = a; i < b; i++) printf("%d\n", arr[i]);
return 0;
}
Вывод:
-1
-1
1
1
Lua:
arr = {}
a = 1
b = 4
c = a + (b - a) // 2
for i = a,c-1 do arr[i] = -1 end
for i = c,b do arr[i] = 1 end
for i = a,b do
print(arr[i])
end
Вывод:
-1
1
1
1
Та что fail. Причём в вашем случае даже чётная длина некорректно обрабатывается.