#include <cstdlib>
#include <iostream>
using namespace std;
int kk(int n,int m){
if(m==0){
return 1;
}
else if(m==1){
return n;
}
else if(m==n){
return 1;
}
else if(m>n){
return 0;
}
else{
return kk(n-1,m-1)+kk(n-1,m);
}
}
int main(int argc, char *argv[])
{
int n,m;
while(cin>>n>>m){
if(n==0 && m==0){
break;
}
cout<<kk(n,m)<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
執行時發生錯誤 (SIGSEGV)(11)!!
Segmentation fault, an address reference boundary error.(記憶體區段錯誤)
可能原因為:
* 通常為使用超過陣列範圍
* 指標指向不正確位址!
* 陣列初始化不正確!
* 嘗試在執行時期定義陣列長度!
#include <cstdlib>
#include <iostream>
using namespace std;
int kk(int n,int m){
if(m==0){
return 1;
}
else if(m==1){
return n;
}
else if(m==n){
return 1;
}
else if(m>n){
return 0;
}
else{
return kk(n-1,m-1)+kk(n-1,m);
}
}
int main(int argc, char *argv[])
{
int n,m;
while(cin>>n>>m){
if(n==0 && m==0){
break;
}
cout<<kk(n,m)<<endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
執行時發生錯誤 (SIGSEGV)(11)!!
Segmentation fault, an address reference boundary error.(記憶體區段錯誤)
可能原因為:
* 通常為使用超過陣列範圍
* 指標指向不正確位址!
* 陣列初始化不正確!
* 嘗試在執行時期定義陣列長度!