В приведенной ниже программе я преобразую целое число в вектор, затем число проверяется на делимость на каждый элемент вектора. Однако, обращаясь к элементам вектора для проверки делимости элементов по числу, возникает ошибка времени выполнения.Ошибка выполнения при доступе к элементам векторного контейнера
#include <iostream>
#include <algorithm>
#include<vector>
using namespace std;
int main(){
int testcase;
cin>>testcase; //number of testcases inputted
while(testcase--)
{
int number,i=0,count=0;
cin >>number; //number is inputted
int p=number;
vector<int> arr(100);
while(number){ //converting integer to array
arr[i]=number%10;
number=number/10;
cout<<arr[i];
if(p%arr[i]==0) //checking whether each element of array is divisible by number //this gives runtime error
count++;
i++;
}
cout<<endl<<count<<endl; //printing the count of elemnts of array divisible by number
}
return 0;
}
Я прокомментировал условие if, которое дает ошибку времени выполнения (без условия if, программа работает правильно). Может кто-нибудь, пожалуйста, скажите мне, как это можно исправить? Спасибо заранее.
Не используйте 'std :: endl', если вам не нужен весь лишний материал, который он делает. '' \ n'' запускает новую строку. –