मैं "सी प्रोग्रामिंग भाषा" पुस्तक (1-13 और 1-14 अभ्यास) में एक समान समस्या पर काम कर रहा हूं। मेरा खुद का कार्यक्रम, बस शुरू करने के लिए, दिए गए इनपुट में अंकों 0 से 9 की घटनाओं की गणना करना है, और प्रत्येक गणना के अनुसार '=' बार से बने क्षैतिज हिस्टोग्राम को मुद्रित करना है।
ऐसा करने के लिए, मैंने निम्न प्रोग्राम बनाया;
main() {
int c, ix, k;
int nDigit[10];
//Instantiate zero values for nDigits array
for(ix = 0; ix < 10; ix++) {
nDigit[ix] = 0;
}
//Pull in input, counting digit occurrences and
//incrementing the corresponding value in the nDigit array
while ((c = getchar()) != EOF) {
if (c >= '0' && c <= '9') {
++nDigit[c-'0'];
}
}
//For each digit value in the array, print that many
//'=' symbols, then a new line when completed
for (ix = 0; ix < 10; ix++) {
k = 0;
while (k <= nDigit[ix]) {
putchar('=');
k++;
}
printf("\n");
}
}
ध्यान दें कि यह कार्य प्रगति पर है। एक उचित हिस्टोग्राम में धुरी लेबल शामिल होना चाहिए, और सबसे महत्वपूर्ण बात यह है कि यह प्रोग्राम शून्य गणना के अंकों के लिए खाता नहीं है। यदि इनपुट में पांच 1 है लेकिन 0 नहीं है, तो यह दिखाने के लिए कोई दृश्य तरीका नहीं है कि हमारे पास कोई शून्य नहीं है। फिर भी, एकाधिक प्रतीकों को मुद्रित करने के लिए तंत्र काम करता है।
@ ओलाफ मुझे पता है कि मुझे बहुत सारी खोजों से जवाब मिल सकता है। लेकिन उनमें से सभी समझने के लिए लंबे और कठिन हैं। यहां मुझे मिनटों के भीतर जवाब मिला। इस साइट पर सवाल पूछने के लिए यह साइट नहीं है? –
ठीक है, आपसे पूछने से पहले अपने आप को उचित प्रयास करने की उम्मीद है। अन्यथा SO जल्द ही एक ट्यूटोरियल साइट बन जाएगा, जो निश्चित रूप से इरादा नहीं है। यदि आपके पास अविश्वास के साथ मूलभूत समस्याएं हैं, तो अक्सर एक कदम वापस लेने और पुस्तक या ऑनलाइन-ट्यूटोरियल पढ़ने का अच्छा विचार होता है। अगर यह होमवर्क है, तो आपको अपने शिक्षक से पूछना चाहिए। एक अच्छा सवाल फीडबैक की सराहना करेगा और सवाल का जवाब देने के लिए अपना कोर्स अपनाएगा। – Olaf
प्रारूप स्ट्रिंग के लिए: यह कुछ वाक्यों में बहुत स्पष्ट रूप से बताया गया है। इस प्रारूप-विकल्प वास्तव में कैसे काम करता है इस बारे में एक और उचित उत्तर हो सकता है। वैसे भी, आपको अपने जवाब मिल गए। – Olaf