
題目如上圖,下面是我的代碼實作,但是OJ提示我“Segmentation fault:段錯誤,檢查是否有陣列越界,指標例外,訪問到不應該訪問的記憶體區域”,請教各位大佬我的問題出在哪?
#include<iostream>
using namespace std;
int comb(int x,int y);
int fun(int x);
int main(){
int t,i;
cout<<"please enter data group's number= "<<endl;
cin>>t;
if(t>0){
int *m=new int[t];
int *n=new int[t];
for(i=0;i<t;i++){
cout<<"please enter m["<<i<<"] and n["<<i<<"](m>n):"<<endl;
cin>>m[i]>>n[i];
}
for(i=0;i<t;i++){
cout<<comb( m[i],n[i] )<<"\n"<<endl;}
delete[] m;
delete[] n;
}
return(1);
}
int comb(int x,int y){
int z;
z=fun(x)/( fun(y)*fun(x-y) );
return(z);
}
int fun(int x){
if(x!=1){
return( fun(x-1)*(x) );
}else{
return(1);
}
}
uj5u.com熱心網友回復:
這種比賽, 要求的格式是什么,你就要嚴格按照格式來,不能做任何額外的輸出你不能cout哪些輸入提示,只能老老實實的
cin >> t;
for (.....) {
cin >> m[i] >> n[i];
}
cout只能是輸出最終的結果
此外, n!很可能超出整數的范圍, 有必要改成double型別計算;
uj5u.com熱心網友回復:
OK,明白了謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/118643.html
標籤:C++ 語言
上一篇:求解——C語言新手
下一篇:順序表總顯示為空
