Цикл Else оператора if-else не выполняется даже после того, как условие if имеет значение false. Ссылка на вопрос:-протокол HTTPS://ВСП.codechef.ком/представить/FIBEASY
#include<iostream> #include<vector> using namespace std; int main() { int T,i,j,k,l; cin>>T; //no of test cases long int P[T]; for(i=0;i<T;++i) { long int A[T],N[T],E,D[T],size,F[T],Z,m; cin>>N[i]; A[0]=0; A[1]=1; for(m=2;m<N[i];++m) //fibonacci series of N terms { A[m]=A[m-1]+A[m-2]; A[m-2]=A[m-1]; A[m-1]=A[m]; } for(m=0;m<N[i];++m) { //finding remainder of fibonacci series D[m]=A[m]%10; } while(1) { for(j=0;j<N[i];j+2) { if(N[i]%2==0) //to check whether N is even or not { for(k=0;k<(N[i]/2);++k) { F[k]=D[j]; //even elements copied new array D[k]=F[k]; // updating original array } N[i]=k; //updating value of N to last index of new array } else { if( N[i] == 1 ) // N[i] become 1 breaking it out of loop { break; } else // when N is not 1 and is odd { for(k=0;k<((N[i]+1)/2);++k) { // for odd value half value is N+1/2 F[k]=D[j]; //even elements are copied here in new array D[k]=F[k]; // updating original array to only even indices array } N[i]=k; //updating N to last index of new array } } } if( N[i] == 1 ) { break; } } P[i]=F[0]; //assigning value to P } for(i=0;i<T;++i) { cout<<P[i]<<"\n"; } return 0; }
Что я уже пробовал:
я запускал его на разных компиляторах, но результат один и тот же: цикл else не выполняется, оператор else для обновления значений для нечетного значения N не выполняется.
Patrice T
Вы должны сказать, что должен делать код.
ссылка на оригинальную проблему тоже была бы хороша.
[no name]
я опубликовал оригинальную ссылку на проблему .
Rick York
Я удивлен, что это даже компилируется из-за того, как используется переменная T.
[no name]
почему, сэр ? является ли синтаксис правильным?
Rick York
В прошлом размеры массивов требовали постоянного выражения для задания их размера. Как отметил г-н 0x1AA, похоже, что это больше не является обязательным требованием.
0x01AA
Похоже, что C++14 наконец-то поддерживает его (G++ поддерживал это с более длительного времени)