मैं इस पाश को रोकने के लिए क्यों नहीं मिल सकता? मेरा ट्रैकर 1 से 10 की सीमा में तत्वों की एक यादृच्छिक संख्या से भरा एक सरणी है। मान लें कि इस सरणी का आकार 50 है। मैं सभी मानों की जांच करना चाहता हूं 1 से 10 सरणी में हैं जब की प्रविष्टि की जांच करके संख्या पहले सरणी में दिखाई देती है। मैं प्रविष्टि के लिए सबसे बड़े मूल्य का ट्रैक रखना चाहता हूं और इसे नंबरऑफहॉप्स के रूप में संग्रहीत करना चाहता हूं और इसलिए यदि सभी संख्याएं सरणी में हैं, तो आउटपुट नंबरऑफहोप्स होना चाहिए।

#include <stdio.h>
#include <stdlib.h>

int main()
{
 int i, k, m, entry = 0, numberOfHops = 0;
 const int L = 10;
 int tracker[50] ={1, 2, 3, 2, 1, 10, 9, 8, 7 , 6 //etc etc//};
 int sitesVisited = 0; 
for (k =1; k<=L; k++ )
    {   do {
        m=0;
        if (k == tracker[m])
        {
            sitesVisited += 1;
            entry = m;
        }
        if (entry > numberOfHops)
        {
            numberOfHops = entry;
        }
        m++;
    } while (sitesVisited < k); 
    }
if (sitesVisited == L) {
    printf("Particle took %d hops to explore environment.\n", numberOfHops);
}
else {
    printf("Particle did not explore entire environment.");
}
}
0
asmit98 14 अप्रैल 2020, 16:08

1 उत्तर

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

समस्या m=0; लाइन में है। आपको इसे do { चक्र शुरू होने से पहले घोषित कर देना चाहिए। प्रत्येक लूप जिसे आप इसे बढ़ाने के बजाय 0 से प्रारंभ करते हैं।

1
Yauhda 14 अप्रैल 2020, 13:48