मैं कार्यों को कॉल करने की कोशिश कर रहा हूं ताकि यह प्रिंट हो जाए कि सरणी एक पालिंड्रोम है या नहीं। कृपया मुझे बताएं कि मैं क्या गलत कर रहा हूँ; ऐसा लगता है कि मैं तर्कों को सही ढंग से पारित नहीं कर रहा हूं। अगर मैंने पोस्ट में कोई गलती की है, तो कृपया मुझे बताएं; मैं वेबसाइट पर काफी नया हूं।

इस तरह आउटपुट दिखना चाहिए:

यह मेरा आउटपुट जैसा दिखता है:

यह मेरा कोड है:

#include <stdio.h>

void createReverseArray();
void printArray();
void compareArray();

int main()
{
    int MyArray1[] = {1, 2, 3, 2, 1};
    int MyArray2[] = {1, 2, 3, 4, 1};
    int MyArray3[] = {1, 2, 3, 3, 2, 1};
    int MyArray4[] = {1, 2, 3, 4, 2, 1};

    int n = 5, i, j, n, temp;

    createReverseArray(MyArray1[5]);
    createReverseArray(MyArray2[5]);
    createReverseArray(MyArray3[5]);
    createReverseArray(MyArray4[5]);

    compareArray(MyArray1[5]);
    compareArray(MyArray2[5]);
    compareArray(MyArray3[5]);
    compareArray(MyArray4[5]);

    printArray(MyArray1[5]);
    printArray(MyArray2[5]);
    printArray(MyArray3[5]);
    printArray(MyArray4[5]);
}

int createReverseArray(int &a[], int n)
{
    i = 0;
    j = n - 1;

    while(i<j) {
        temp = a[i];
        a[i] = a[j];
        a[j] = temp;
        i++;
        j--;
    }

    return reverse = a[];
}

int compareArray(int &a[], int reverse)
{
    if(a[] == reverse) {
        printf("The array is a palindrome")
    }
    else {
        return 0;
    }

}


void printArray(&a[])
{
    printf("Array elements are:%d", a[]);
    compareArray(a[]);
}
-2
Alex 27 अक्टूबर 2017, 17:17
"इस तरह आउटपुट दिखना चाहिए" और? यह वास्तव में कैसा दिखता है? और यह बुरा क्यों है? आपको अपेक्षित और वास्तविक आउटपुट शामिल करना चाहिए। "कृपया मुझे बताएं कि मैं क्या गलत कर रहा हूं" समस्या का विवरण नहीं है; हमें नहीं पता कि आपको क्यों लगता है कि कुछ गलत है, क्योंकि आपने यह नहीं पहचाना कि समस्या क्या है।
 – 
underscore_d
27 अक्टूबर 2017, 17:20
आपका तुलनाअरे फ़ंक्शन पूरा नहीं हुआ है।
 – 
mnistic
27 अक्टूबर 2017, 17:21
createReverseArray() में reverse क्या है?
 – 
Adalcar
27 अक्टूबर 2017, 17:24
MyArray1[5] --> MyArray1 इत्यादि।
 – 
BLUEPIXY
27 अक्टूबर 2017, 17:25
1
createReverseArray() में, आप return reverse = a[], लेकिन वह फ़ंक्शन कैसे जानता है कि reverse क्या है? क्या यह वास्तव में आपका पूरा कोड है? क्या यह वास्तव में संकलित है? और आप उस असाइनमेंट के परिणाम को int पर कास्ट करके और उसे फ़ंक्शन से वापस करके क्या हासिल करने की उम्मीद करते हैं?
 – 
underscore_d
27 अक्टूबर 2017, 17:32

1 उत्तर

सबसे बढ़िया उत्तर

मुझे यकीन नहीं है कि मेरे पास प्रदान किए गए कोड के साथ अनिश्चितताओं की मात्रा है, लेकिन यदि आपका उद्देश्य केवल यह पता लगाना है कि क्या सरणी एक पैलिंड्रोम है, तो यह बहुत सरल है और इसे एक ही फ़ंक्शन में किया जा सकता है:

bool isPalindrome(int[] list, int size)
{
    for(int k = 0; k < size / 2 - 1; k++)
        if(list[k] != list[size - k - 1])
            return false;
    return true;
}

यह आपके आधे सरणी को पुनरावृत्त करेगा, इसे दूसरी छमाही से तुलना करना और तत्काल एक मान से बाहर निकलना इसके दर्पण के बराबर नहीं है।

आपके कोड में गलतियों के लिए, मैं भविष्य के संदर्भ के लिए कुछ और स्पष्ट लोगों को इंगित करने में सक्षम हो सकता हूं:

  1. तर्कों की गलत संख्या के साथ कॉलिंग फ़ंक्शन। उदाहरण: createReverseArray(MyArray1[5])
  2. तर्क के रूप में सरणियों के स्थान पर पासिंग पूर्णांकों को कॉल करना। उदाहरण: MyArray[5], MyArray के छठे स्थान पर पूर्णांक है।
  3. दायरे को अनदेखा करना और उन्हें घोषित किए बिना चर का उपयोग करना। उदाहरण: i और j main से createReverseArray में इस्तेमाल किया जा रहा है। यह काम नहीं करता।
  4. एक पूर्णांक को एक सरणी सूचक से तुलना करना। उदाहरण: if(a[] == reverse)। कोई फर्क नहीं पड़ता कि आप क्या हासिल करने की कोशिश कर रहे थे, यह आपको कभी भी उपयोगी परिणाम नहीं देगा।
  5. आपके आगे की घोषणा और आपके कार्यान्वयन में विभिन्न कार्यों की घोषणा करना। उदाहरण: void createReverseArray(); और int createReverseArray(int &a[], int n)। आपको उन्हें समान तर्कों और वापसी मूल्यों के साथ घोषित करना चाहिए या संकलक यह नहीं समझेगा कि वे एक ही चीज़ हैं।
2
Adalcar 27 अक्टूबर 2017, 18:01
यह वास्तव में वास्तव में उपयोगी है! मुझे लगता है कि मैं सरणियों पर पढ़ने जा रहा हूं और कुछ और कार्य करता हूं और फिर पुनः प्रयास करता हूं धन्यवाद!
 – 
Alex
27 अक्टूबर 2017, 17:50
मैंने कुछ (थोड़ी असभ्य लेकिन फिर भी शायद मददगार) सलाह जोड़ी हैं जो आपको कुछ बुनियादी गलतियों से बचने में मदद कर सकती हैं
 – 
Adalcar
27 अक्टूबर 2017, 17:56
कमाल है धन्यवाद! भविष्य के संदर्भ के लिए इसे नोट कर लेंगे
 – 
Alex
27 अक्टूबर 2017, 19:28