Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

सी भाषा में सममित डबल त्रिकोण पैटर्न प्रिंट करें

लाइनों की संख्या को देखते हुए प्रोग्राम को कम से कम जटिलता के साथ सममित दोहरे त्रिकोण पैटर्न को प्रिंट करना चाहिए।

उदाहरण

Input: 5
Output:  X
          X
          O X
           O X
      X O X O X
       X O
        X O
         X
          X


पूरी समस्या में 3 अलग-अलग विभाजन हैं -

  • विषम n या n-2 पंक्तियों के लिए सम n के लिए n-1 लाइनों के साथ ऊपरी आधा प्रिंट करें।

  • मध्य रेखाएँ प्रिंट करें, विषम n के लिए 1 पंक्ति या सम n के लिए 3 पंक्तियाँ।

  • विषम n के लिए n-1 पंक्तियों के साथ निचला आधा प्रिंट करें या सम n के लिए n-2 पंक्तियों के साथ

एल्गोरिदम

START
   STEP 1: IF (n % 2 == 0) then
      x = x - 1;
      Define p as n – 1 for spaces
      Define s = 1 for characters
   STEP 2: LOOP FOR i= 1 AND i <= (x - 1) / 2 AND i++
      LOOP FOR j = 1 AND j <= p AND j++
         PRINT SPACE
      END LOOP
      IF i % 2 != 0 then
         GOTO STEP 11 Printx(s)
      ELSE
         GOTO STEP 12 Printo(s)
      END
      PRINT NEW LINE
      INCREMENT p BY 1
      LOOP FOR j = 1 AND j <= p AND j++
         PRINT SPACE
      END LOOP
      IF i % 2 != 0 then,
         GOTO STEP 11 Printx(s)
      ELSE
         GOTO STEP 12 Printo(s)
      END IF
         PRINT NEWLINE
         DECREMENT p BY 1
         INCREMENT s BY 1
      END LOOP
   STEP 3: IF n % 2 == 0 {
      LOOP FOR i = 1 AND i <= p AND i++
         PRINT SPACE
         IF n % 4 != 0 then,
            GOTO STEP 11 Printx(n/2)
         ELSE
            GOTO STEP 12 Printo(n/2)
         END IF
         PRINT SPACE
      END IF
   STEP 4: IF n % 2 != 0 then,
      GOTO STEP
      ELSE
         IF n % 4 != 0 then,
            DIVIDE n BY 2 AND GOTO STEP 11 Printx(n/2) and Printx(n/2)
         ELSE
            DIVIDE n BY 2 AND GOTO STEP 11 Printx(n/2) and Printo(n/2)
            DIVIDE n BY 2 AND GOTO STEP
         END IF
      END IF
      PRINT NEW LINE
   STEP 5: IF n % 2 == 0 then, {
      PRINT SPACE
      DIVIDE n BY 2 AND GOTO STEP 11 Printx(n/2)
      PRINT NEWLINE
      END IF
   STEP 6: SET p = 1
   STEP 7: IF n % 2 == 0
      DECREMENT x BY 1
      SET p = 2
      END IF
   STEP 8: SET q = x / 2
   STEP 9: LOOP FOR i = 1 AND i <= x AND i++) {
      LOOP FOR j = 1 AND j <= p AND j++
         PRINT SPACE
      END FOR
      PASS q TO STEP 11 Printx(q)
      IF i % 2 == 0 THEN
         DECREMENT q BY 1
      END IF
      PRINT NEWLINE
      INCREMENT p BY 1
   END FOR
   STEP 10: PRINT NEWLINE
   STEP 11: Printx(n)
      LOOP FOR i = 1 AND i< = n AND i++
         IF i % 2 != 0 then,
            PRINT x
         ELSE
            PRINT o
      END IF
   END FOR
   STEP 12: Printo(n)
      LOOP FOR i = 1 AND i< = n AND i++
      IF i % 2 != 0 then,
         PRINT o
      ELSE
      PRINT x
STOP

उदाहरण

#include <stdio.h>
// printing alternate x o starting with x
int printx(int n) {
   int i;
   for ( i = 1; i < = n; i++) {
      if (i % 2! = 0)
         printf("x ");
      else
         printf("o ");
   }
   return 0;
}
// printing alternate x o starting with o
int printo(int n) {
   int i;
   for ( i = 1; i < = n; i++) {
      if (i % 2! = 0)
         printf("o ");
      else
         printf("x ");
   }
   return 0;
}
// To print the pattern for n
int printpattern(int n) {
   // upper half
   // n-1 lines for odd, n-2 lines for even
   int x = n;
   int i, j;
   if (n % 2 == 0)
   x = x - 1;
   // number of spaces to leave in each line
   int p = n - 1;
   // number of characters in each line
   int s = 1;
   // prints double lines in each iteration
   for ( i = 1; i < = (x - 1) / 2; i++) {
      for ( j = 1; j < = p; j++) {
         printf(" ");
      }
      if (i % 2! = 0)
         printx(s);
      else
         printo(s);
         printf("\n");
         p++;
      for ( j = 1; j < = p; j++)
         printf(" ");
      if (i % 2! = 0)
         printx(s);
      else
         printo(s);
         printf("\n");
         p--;
         s++;
   }
   // extra upper middle for even
   if (n % 2 == 0) {
      for ( i = 1; i < = p; i++)
         printf(" ");
      if (n % 4! = 0)
         printx(n / 2);
      else
         printo(n / 2);
         printf("\n");
   }
   // middle line
   if (n % 2! = 0)
      printx(n);
   else {
      if (n % 4! = 0) {
         printx(n / 2);
         printx(n / 2);
      } else {
         printx(n / 2);
         printo(n / 2);
      }
   }
   printf("\n");
   // extra lower middle for even
   if (n % 2 == 0) {
      printf(" ");
      printx(n / 2);
      printf("\n");
   }
   // lower half
   p = 1;
   if (n % 2 == 0) {
      x--;
      p = 2;
   }
   int q = x / 2;
   // one line for each iteration
   for ( i = 1; i < = x; i++) {
      for (int j = 1; j < = p; j++)
         printf(" ");
         printx(q);
      if (i % 2 == 0)
         q--;
         printf("\n");
         p++;
   }
   printf("\n");
   return 1;
}
int main() {
   int n = 5;
   printpattern(n);
   return 0;
}

आउटपुट

यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा।

      X
       X
       O X
        O X
   X O X O X
    X O
     X O
      X
       X

  1. सी भाषा में सरणी के अलग-अलग तत्वों को प्रिंट करें

    पूर्णांक तत्वों की एक सरणी के साथ, कार्य डुप्लिकेट मानों को हटाना और अलग-अलग तत्वों को क्रमबद्ध तरीके से प्रिंट करना है। नीचे दी गई एक सरणी है जो फैशन 4, 6, 5, 3, 4, 5, 2, 8, 7 और 0 में पूर्णांक प्रकार के मानों को संग्रहीत करती है, परिणाम क्रमबद्ध तत्वों को 0, 2, 3, 4 के रूप में प्रिंट करेगा। 4, 5,

  1. सी प्रोग्राम में मैट्रिक्स विकर्ण पैटर्न में प्रिंट नंबर।

    कार्य विकर्ण पैटर्न के n x ​​n के मैट्रिक्स को प्रिंट करना है। यदि n 3 है तो विकर्ण पैटर्न में एक मैट्रिक्स को प्रिंट करना है - तो आउटपुट इस तरह होगा - उदाहरण Input: 3 Output:    1 2 4    3 5 7    6 8 9 Input: 4 Output:    1 2 4  7    3 5

  1. पायथन में पैटर्न कैसे प्रिंट करें?

    नेस्टेड फॉर लूप्स का उपयोग करके पायथन में पैटर्न मुद्रित किए जा सकते हैं। बाहरी लूप का उपयोग पंक्तियों की संख्या के माध्यम से पुनरावृति करने के लिए किया जाता है जबकि आंतरिक लूप का उपयोग स्तंभों की संख्या को संभालने के लिए किया जाता है। आवश्यकता के अनुसार विभिन्न पैटर्न बनाने के लिए प्रिंट स्टेटमेंट