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