2011-03-02 17 views
7

मेरा प्रश्न है: मेरे पास एक मैट्रिक्स है। मुझे उस मैट्रिक्स में प्रत्येक प्रविष्टि के लिए संबंधित फिबोनाची संख्या की गणना करने की आवश्यकता है, और उन मानों को किसी अन्य मैट्रिक्स में वापस कर दें। मैं एक C2109 मिलती रहती है "सबस्क्रिप्ट सरणी या सूचक प्रकार की आवश्यकता है", और मैं जानता हूँ कि यह कहाँ से आ रहा है, और मुझे पता इसका क्या मतलब है, लेकिन मैं नहीं जानता कि कैसेसी ++ कोड में फिबोनाची संख्याओं की गणना

  1. ठीक यह
  2. मेकअप मेरा कोड काम करता है।

अभी, यह कुछ भी नहीं करता है। मुझे यकीन नहीं है कि मैं अपने फाइबोनैकी फ़ंक्शन से कोई भी मूल्य वापस कर रहा हूं, या इसे अपने मुख्य फ़ंक्शन में सही तरीके से कॉल कर रहा हूं। मैंने इसे मूल रूप से संशोधित किया है। यह मेरा नया कोड है:

const int  row1 = 3; 
const int  col1row2 = 3; 
const int  col2 = 3; 

int fibonacci (int [][col2]); 

void main() 
{ 
    int p[row1][col2], f [row1][col2]; 
    int sum; 
    input (a,b); 

    cout<<"The Fibonacci Matrix is: "; 
    cout<<fibonacci(p);  
    for (int i = 0; i < row1; i++) 
    { 
      for (int j = 0; j < col2; j++) 
       { 
        sum = f[i][j]; 
        f[i][j] = fibonacci(p);   
       } 
    } 
    cout<<endl; 
} 


int fibonacci (int z[][col2]) 
{ 
    int fib [100] = {0 , 1}; 
    int sum = 0; 

    for (int m = 2; m < 100; m++) 
    { 
      sum = fib[m-1] + fib[m-2]; 
      fib[m] = sum; 
    } 
    return sum; 
    cout<<endl; 
} 

किसी भी मदद की सराहना की है!

+9

यह किसी को जो वास्तव में पूछ से पहले समस्या को हल करने की कोशिश की है देखने के लिए ताज़ा है नहीं है! –

+0

@ एंडर्स के। हां, प्रयास करने और फिर पूछने के लिए +1। – wheaties

+0

धन्यवाद :) मैं इस तरह की साइट पर एक प्रश्न पोस्ट करने के लिए बहुत चिंतित था, जिसके परिणामस्वरूप मजा आएगा: पी – Sam

उत्तर

4

मुझे लगता है कि समस्या यह है कि इस लाइन है:

f [i][j] = fib [ p [i][j] ]; 

fib समारोह गलत तरीके से कॉल करने के लिए कोशिश कर रहा है। आपके पास यहां सही विचार है, लेकिन सी ++ में फ़ंक्शन को कॉल करने के लिए आपको स्क्वायर ब्रैकेट की बजाय नियमित ब्रांड्स का उपयोग करने की आवश्यकता है। मुझे लगता है कि इस लाइन दिखना चाहिए

f [i][j] = fib (p [i][j]); 

एक अनुवर्ती के रूप में, fib अपने क्रियान्वयन लगता है जैसे कि यह गलत हो सकता है। विशेष रूप से, आप matrices से संबंधित दो पैरामीटर ले रहे हैं, लेकिन आप इन मानों का सीधे उपयोग नहीं करते हैं। इसके बजाय, आप सभी फाइबोनैकी संख्याओं की एक नई स्थानीय सरणी बना रहे हैं। आप संभवतः यह फ़ंक्शन उचित फाइबोनैकी संख्या उत्पन्न करना चाहते हैं जो इसे उत्पन्न करता है।

उम्मीद है कि यह मदद करता है, और सी ++ में आपकी यात्रा पर शुभकामनाएँ!

+0

आपको बहुत बहुत धन्यवाद! :) – Sam

2

templatetypedef के अलावा, आप केवल फाइब फ़ंक्शन के लिए एक तर्क की आपूर्ति कर रहे हैं लेकिन इसे दो तर्क लेने की घोषणा की है। इसके अलावा fib() एक मान वापस नहीं करता है - इसकी घोषित शून्य। अच्छा काम -

fib(p [i][j]); 

अर्धविराम भी यहाँ याद आ रही

sum = fib[ m - 1] + fib[ m - 2] 
संबंधित मुद्दे