#588: 錯了又錯(c++)


fishwish (Fish)

學校 : 國立臺南女子高級中學
編號 : 2356
來源 : [180.177.105.160]
最後登入時間 :
2017-12-31 11:27:54
a007. 判斷質數 | From: [61.223.101.158] | 發表日期 : 2008-09-17 00:33

不知道這裡到底哪裡出錯了

請各位指點一下

#include <iostream>
#include <cmath>
using namespace std;
int primary(int n);
int j,n;
double m;
int main(){
    while(cin>>n){
     if(primary(n)==1)
  cout<<"非質數"<<endl;
  else
  cout<<"質數"<<endl;
   
   
    }
     
    
    
     
    return 0;
    }
int primary(int n){
 m=sqrt(n);
    for(j=2;j<=m;j++){
  if(n==2)
        break;
     else if(n%j==0){
      return 1;
      break;
     }
  
 }
}

 

 

一直CE 我不懂CE的定義

因為每次CE錯誤解釋我都看不懂= =

請大家告訴我,謝謝

 

 
#589: Re:錯了又錯(c++)


POOHccc ()

學校 : 國立臺中技術學院
編號 : 1139
來源 : [220.135.97.253]
最後登入時間 :
2012-02-04 21:23:42
a007. 判斷質數 | From: [220.135.97.253] | 發表日期 : 2008-09-17 00:43

m=sqrt(n);

請改成

m=sqrt((double)n); 

 
#590: Re:錯了又錯(c++)


fishwish (Fish)

學校 : 國立臺南女子高級中學
編號 : 2356
來源 : [180.177.105.160]
最後登入時間 :
2017-12-31 11:27:54
a007. 判斷質數 | From: [61.223.101.158] | 發表日期 : 2008-09-17 00:55

m=sqrt(n); 

請改成

m=sqrt((double)n);  




謝謝謝謝

我試了好久,真的很謝謝你!!!

不知是否能請教你為何要特地加上那個double呢

 
#591: Re:錯了又錯(c++)


POOHccc ()

學校 : 國立臺中技術學院
編號 : 1139
來源 : [220.135.97.253]
最後登入時間 :
2012-02-04 21:23:42
a007. 判斷質數 | From: [220.135.97.253] | 發表日期 : 2008-09-17 00:59

因為在cmath的定義裡

double sqrt(double);

float sqrt(float);

long double sqrt(long double);

 

而你卻給 sqrt(int)

這樣無法識別該用那個函式

所以強制型別轉換成double,告訴函式要用那個

當然你要強制轉換成float或是long double也是ok

 
#601: Re:錯了又錯(c++)


fishwish (Fish)

學校 : 國立臺南女子高級中學
編號 : 2356
來源 : [180.177.105.160]
最後登入時間 :
2017-12-31 11:27:54
a007. 判斷質數 | From: [61.223.102.97] | 發表日期 : 2008-09-24 00:22

因為在cmath的定義裡

double sqrt(double);

float sqrt(float);

long double sqrt(long double);

 

而你卻給 sqrt(int)

這樣無法識別該用那個函式

所以強制型別轉換成double,告訴函式要用那個

當然你要強制轉換成float或是long double也是ok 



    謝謝你!!我懂了 
ZeroJudge Forum