0
我最近开始学习C++,并且正在尝试编写一个程序,在该程序中,我将给定的任意大小的整数作为输入,然后找到这个数字中的数字,整数。这些数字的计数显示为结果。即使在检查是否除零之后浮点异常
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n; //Number of Integers to take as input
cin>>n;
vector<int> a;
for(int i=0;i<n;i++){
long long val;
cin>>val;
a.push_back(val);
}
for(int i=0;i<n;i++){
int k=1,count=0,r,q;
r=a[i];
q=a[i];
while(k==1){
q/=10;
r=q%10;
if(a[i]%r==0 && r>=1)
count++;
if(q<10 && q>=1){
if(a[i]%q==0)
count++;
k=0;
}
if(q==0)
k=0;
}
cout<<count<<"\n";
}
return 0;
}
上面的代码作品整数WITHOUT数字“0”但是当我使用具有0作为一个数字的任何整数,这显示:
错误 浮点异常(核心转储)
我试着修改代码,试图跳过数字,只要'r'或'q'等于'0'但似乎没有任何工作。 任何帮助/意见,将不胜感激!
谢谢,不知道条件的安排会改变结果。 – 2014-12-07 13:39:51