2015-04-24 5 views
5

मैं इस तरह के आकार बनाने के लिए करना चाहते हैं:सी में एक आकार बनाएं ++

ccccccc 
cccccc 
ccccc 
cccc 
ccc 
cc 
c 

मेरे कोड है:

#include <iostream> 

using namespace std; 

int main(){ 
    int i, j; 
    for(i = 0; i < 7; i++){ 
     for(j = 7; j > 7; j--){ 
      cout << 'c'; 
     } 
     cout << endl; 
    } 
    return 0; 
} 

लेकिन टर्मिनल में उत्पादन मैं कुछ रिक्त लाइनों है।

मैं क्या गलत कर रहा हूं?

enter image description here

+0

जहां इन रिक्त लाइनों ने आरोप लगाया जाता है? क्या आप हमें अपना वर्तमान आउटपुट प्रदान कर सकते हैं? – mstbaum

+0

[यहां एक स्क्रीनशॉट है] (https://www.anony.ws/image/DpCK) – Sakir

उत्तर

18

for(j = 7; j > 7; j--){ यह अभिव्यक्ति हमेशा गलत है।

आप for(j = 7; j > i; j--){

+2

यह एक पैटर्न है जो सभी सी ++ सॉफ़्टवेयर में बहुत लोकप्रिय है: DI उम्मीद है कि कोई इसकी लाइब्रेरी बनाये, std :: ChristmasTree < >, templated बेहतर है: डी – Mouze

+1

@Mouze: मेरे सभी कोडिंग वर्षों में, एकमात्र बार जब मैं इस पैटर्न को देखता हूं तो प्रारंभिक सी और सी ++ प्रोग्रामिंग कोर्स में असाइनमेंट होता है। यह कभी-कभी सी और सी ++ पाठ्यक्रम में कभी-कभी उपयोग नहीं किया जाता है। –

4

लिखने की ज़रूरत आप इस हैं:

live example

आपका मूल कोड भीतरी पाश

for(j = 7; j > 7; j--){

में एक तर्क त्रुटि थी

#include <iostream> 

using namespace std; 

int main(){ 
    int i, j; 
    for(i = 7; i > 0; --i){ 
     for(j = i; j > 0 ; j--){ 
      cout << 'c'; 
     } 
     cout << endl; 
    } 
    return 0; 
} 
यहाँ j है 7 लेकिन जे कभी नहीं होगा एक से अधिक 7 तो यह कार्यान्वित कभी नहीं, लेकिन यह भले ही

for(j = 7; j > 0; j--){

को तय किया गया था यह होगा सिर्फ cout 7 'c' 7 बार, तो क्या मैं संशोधित किया गया था अपने आंतरिक लूप को मूल्य शुरू करने के लिए बदलें ताकि यह सही ढंग से घट जाए।

for(i = 7; i > 0; --i){ 
      for(j = i; j > 0 ; j--){ 
        ^now initialised by outer loop 

तो क्या होगा कि भीतर पाश कभी नहीं मार डाला है, लेकिन आप cout << endl; 7 बार इसलिए रिक्त लाइनों

0

पाश

for(j = 7; j > 7; j--){ 

गलत है की हालत मार डाला। यही कारण है कि यह हमेशा गलत पर बराबर क्योंकि शुरू में मैं 7 के लिए सेट है और यह एक से अधिक 7. :)

नहीं किया जा सकता है मुझे लगता है कि आप की तरह

for(j = 7 - i; j > 0; j--){ 

कार्यक्रम सरल लिखा जा सकता है कुछ मतलब है।

#include <iostream> 
#include <iomanip> 

int main() 
{ 
    while (true) 
    { 
     std::cout << "Enter a non-negative number (0-exit): "; 

     size_t n = 0; 
     std::cin >> n; 

     if (!n) break; 

     const char c = 'c'; 

     std::cout << std::setfill(c); 

     while (n) std::cout << std::setw(n--) << c << std::endl; 
    } 

    return 0; 
} 

कार्यक्रम उत्पादन

Enter a non-negative number (0-exit): 7 
ccccccc 
cccccc 
ccccc 
cccc 
ccc 
cc 
c 
Enter a non-negative number (0-exit): 0 
संबंधित मुद्दे