Thursday, March 11, 2021

        

MS WORD

C PROGRAMMING

HTML

VISUAL STUDIO

 


C एक शक्तिशाली सामान्य प्रयोजन की प्रोग्रामिंग भाषा है। इसका उपयोग ऑपरेटिंग सिस्टम, डेटाबेस, कंपाइलर जैसे सॉफ्टवेयर को विकसित करने के लिए किया जा सकता है। सी प्रोग्रामिंग शुरुआती लोगों के लिए कार्यक्रम सीखने के लिए एक उत्कृष्ट भाषा है।C एक सामान्य-प्रयोजन, प्रक्रियात्मक कंप्यूटर प्रोग्रामिंग भाषा है, जो स्टैटिकली प्रोग्रामिंग सिस्टम के साथ संरचित प्रोग्रामिंग, लेक्सिकल वैरिएबल स्कोप और रिकर्सन का समर्थन करती है। डिजाइन के अनुसार, C ऐसे निर्माण को प्रदान करता है जो विशिष्ट मशीन निर्देशों के लिए कुशलता से नक्शा करता है। यह पहले से असेंबली भाषा में कोडित अनुप्रयोगों में स्थायी उपयोग पाया गया है। ऐसे अनुप्रयोगों में कंप्यूटर आर्किटेक्चर के लिए ऑपरेटिंग सिस्टम और विभिन्न एप्लिकेशन सॉफ़्टवेयर शामिल हैं जो सुपर कंप्यूटर से लेकर PLC और एम्बेडेड सिस्टम तक हैं।
प्रोग्रामिंग भाषा बी, सी का उत्तराधिकारी मूल रूप से डेनिस रिची द्वारा बेल लैब्स में 1972 और 1973 के बीच यूनिक्स पर चलने वाली उपयोगिताओं के निर्माण के लिए विकसित किया गया था। इसे यूनिक्स ऑपरेटिंग सिस्टम के कर्नेल को फिर से लागू करने के लिए लागू किया गया था। 1980 के दशक के दौरान, सी ने धीरे-धीरे लोकप्रियता हासिल की। यह सबसे अधिक इस्तेमाल की जाने वाली प्रोग्रामिंग भाषाओं में से एक बन गया है, जिसमें मौजूदा कंप्यूटर आर्किटेक्चर और ऑपरेटिंग सिस्टम के अधिकांश के लिए उपलब्ध विभिन्न विक्रेताओं के सी कंपाइलर हैं। C को 1989 से ANSI (ANSI C) और अंतर्राष्ट्रीय मानकीकरण संगठन (ISO) द्वारा मानकीकृत किया गया है।
C एक अनिवार्य प्रक्रियात्मक भाषा है। इसे कम से कम रनटाइम सपोर्ट के साथ मशीन निर्देशों को कुशलतापूर्वक मैप करने वाली मेमोरी और भाषा निर्माणों को निम्न-स्तरीय पहुंच प्रदान करने के लिए संकलित करने के लिए डिज़ाइन किया गया था। अपनी निम्न-स्तरीय क्षमताओं के बावजूद, भाषा को क्रॉस-प्लेटफॉर्म प्रोग्रामिंग को प्रोत्साहित करने के लिए डिज़ाइन किया गया था। मन में पोर्टेबिलिटी के साथ लिखे गए एक मानक-अनुपालन सी प्रोग्राम को कंप्यूटर कोड और ऑपरेटिंग सिस्टम की एक विस्तृत विविधता के लिए संकलित किया जा सकता है, जिसके स्रोत कोड में कुछ बदलाव हो सकते हैं।
जनवरी 2021 तक, C को TIOBE इंडेक्स में पहला स्थान दिया गया था, जो प्रोग्रामिंग भाषाओं की लोकप्रियता का एक माप था, न की ओर से बढ़ रहा था
C का अन्य भाषाओं से संबंध
कई बाद की भाषाओं ने C से सीधे या परोक्ष रूप से उधार लिया है, जिनमें C ++, C #, Unix का C शेल, D, Go, Java, जावास्क्रिप्ट (ट्रांसपाइलर सहित), जूलिया, लिम्बो, LPC, ऑब्जेक्टिव-सी, पर्ल, PHP, पायथन(Python), रूबी शामिल हैं। रस्ट, स्विफ्ट, वेरिलॉग और सिस्टमविरलॉग (हार्डवेयर विवरण भाषाएँ)। इन भाषाओं ने सी से कई नियंत्रण संरचनाएं और अन्य बुनियादी विशेषताएं खींची हैं। उनमें से अधिकांश (पायथन एक नाटकीय अपवाद है) सी के समान उच्च सिंटैक्स भी व्यक्त करते हैं, और वे अंतर्निहित प्रकार के साथ सी के पहचानने योग्य अभिव्यक्ति और स्टेटमेंट सिंटैक्स को संयोजित करते हैं। सिस्टम, डेटा मॉडल और शब्दार्थ जो मौलिक रूप से भिन्न हो सकते हैं।
इस ट्यूटोरियल में, आप कीवर्ड के बारे में जानेंगे; सी प्रोग्रामिंग में आरक्षित शब्द जो वाक्य रचना का हिस्सा हैं। साथ ही, आप पहचानकर्ताओं के बारे में जानेंगे और उनका नाम कैसे लेंगे।
अक्षरों का समूह(Character set)
एक वर्ण सेट अक्षर, अक्षरों और कुछ विशेष वर्णों का एक समूह है जो C भाषा में मान्य हैं।

अक्षर Alphabets

Uppercase: A B C ................................... X Y Z
Lowercase: a b c ...................................... x y z
C लोअरकेस और अपरकेस अल्फाबेट्स को चर और कार्यों के रूप में स्वीकार करता है।
विशेष वर्ण
अंक Digits
0 1 2 3 4 5 6 7 8 9
C कीवर्ड (C Keywords)
कीवर्ड पूर्वनिर्धारित, आरक्षित शब्द हैं जो प्रोग्रामिंग में उपयोग किए जाते हैं जो संकलक के लिए विशेष अर्थ रखते हैं। कीवर्ड सिंटैक्स का हिस्सा हैं और उन्हें पहचानकर्ता के रूप में उपयोग नहीं किया जा सकता है। उदाहरण के लिए: int money; यहाँ, int एक कीवर्ड है जो पैसे को इंगित करता है प्रकार int (पूर्णांक) का एक चर है।
जैसा कि C एक केस संवेदनशील भाषा है, सभी कीवर्ड्स को लोअरकेस में लिखा जाना चाहिए। यहां ANSI C में अनुमत सभी कीवर्ड की एक सूची दी गई है।
ये सभी कीवर्ड, उनके सिंटैक्स और एप्लिकेशन उनके संबंधित विषयों में चर्चा करेंगे। हालाँकि, यदि आप आगे जाने के बिना इन खोजशब्दों का संक्षिप्त विवरण चाहते हैं, तो C प्रोग्रामिंग में सभी खोजशब्दों की सूची पर जाएँ।

                 Data Type Keywords

ये variables का type बताते हैं 1. int 👉 integer (पूरे number) C int a = 10; 2. float 👉 decimal number C float x = 10.5; 3. double 👉 बड़ा decimal (float से ज्यादा accurate) C double y = 12.34567; 4. char 👉 single character C char ch = 'A'; 5. void 👉 कोई value return नहीं C void fun() { }

🔹 Control Statements

6. if 👉 condition check C if(a > 10) { printf("Yes"); } 7. else 👉 if false हो तो C if(a>10) printf("Yes"); else printf("No"); 8. switch 👉 multiple condition C switch(a) { case 1: printf("One"); break; } 9. case 👉 switch के अंदर option C case 2: printf("Two"); 10. default 👉 कोई case match न हो C default: printf("Other");

                                🔹 Loop Keywords

11. for 👉 loop (fixed count) C for(int i=0;i<5;i++) { printf("%d", i); } 12. while 👉 condition based loop C while(i<5) { i++; } 13. do 👉 पहले run फिर check C do { i++; } while(i<5);

                                🔹 Jump Statements

14. break 👉 loop/ switch से बाहर C if(i==3) break;
जब पता नहीं कब रुकना है (यहीं break काम आता है) मान लो: 👉 user से input ले रहे हो 👉 या कोई condition runtime पर decide होगी C for(int i = 1; i <= 5; i++) { if(i == 3) { break; } printf("%d ", i); } 👉 यहाँ loop 5 तक जा सकता था लेकिन condition मिली → 3 पर रोक दिया 🔹 Real-Life Example (important) 🎯 Example: number search करना C int arr[] = {2, 5, 8, 10}; for(int i = 0; i < 4; i++) { if(arr[i] == 8) { printf("Mil gaya"); break; } } 👉 जैसे ही 8 मिला → loop रोक दिया 👉 आगे check करने की जरूरत नहीं 🔹 User Input Example C int num; while(1) { scanf("%d", &num); if(num == 0) { break; } printf("You entered %d\n", num); } 👉 user जब 0 देगा → loop बंद 👉 पहले से नहीं पता था कब रुकेगा 🔥 Core Concept 👉 break तब use होता है जब: loop कितनी बार चलेगा ये पहले से fix नहीं हो बीच में condition मिलने पर तुरंत रोकना हो unnecessary iterations बचानी हों (optimization) 🔹 Short Answer 👉 अगर limit fix है → break नहीं चाहिए 👉 अगर condition dynamic है → break बहुत जरूरी है 

15. continue 👉 current iteration skip C if(i==3) continue;
अब continue में iteration कैसे काम करता है इसे बिल्कुल step-by-step समझते हैं। 🔹 Code Example C #include <stdio.h> int main() { for(int i = 1; i <= 5; i++) { if(i == 3) { continue; } printf("%d ", i); } return 0; } 🔹 Iteration के हिसाब से समझो ▶️ 1st Iteration i = 1 condition (i == 3) ❌ printf चला → 1 print ▶️ 2nd Iteration i = 2 condition ❌ printf चला → 2 print ▶️ 3rd Iteration (important) i = 3 condition (i == 3) ✔️ continue execute हुआ 👉 अब क्या होगा: नीचे का printf skip हो गया loop सीधे next iteration पर चला गया 👉 इसलिए 3 print नहीं हुआ ▶️ 4th Iteration i = 4 condition ❌ printf चला → 4 print ▶️ 5th Iteration i = 5 condition ❌ printf चला → 5 print 🔹 Final Output 1 2 4 5 

16. goto 👉 direct jump (rare use) C goto label; label: 17. return 👉 function से value वापस C return 0;
Program सिर्फ output देने के लिए नहीं होता — 👉 वो OS (Operating System) या calling script को status code भी देता है return 0; → ✔️ सब सही return 1; → ❌ कुछ गड़बड़ 🔹 कब use करेंगे return 1;? 1. ❌ Input गलत हो C #include <stdio.h> int main() { int age; scanf("%d", &age); if(age < 0) { printf("Invalid age"); return 1; } printf("Valid age"); return 0; } 👉 अगर user गलत input दे → program error code भेजेगा 2. ❌ File open न हो C FILE *fp = fopen("data.txt", "r"); if(fp == NULL) { printf("File not found"); return 1; } 👉 मतलब: program आगे safely नहीं चल सकता 3. ❌ Important condition fail हो C if(password_wrong) { return 1; } 🔹 Real Use कहाँ होता है? 👉 जब आप: script चला रहे हो (.bat / shell script) automation कर रहे हो बड़े software बना रहे हो 👉 तब system check करता है: Bash if(program_success) 🔥 Advanced Point आप अलग-अलग errors के लिए अलग code दे सकते हो: C return 1; // general error return 2; // file error return 3; // input error 👉 इससे debugging आसान होती है 🔹 Short समझ 👉 return 1 = “Program ठीक से नहीं चला” 👉 return 0 = “Program सही चला”

                    🔹 Storage Class Keywords

18. auto 👉 default local variable C auto int a; 19. register 👉 fast memory में store (CPU register) C register int x; 20. static 👉 value retain करता है C static int x = 0; 21. extern 👉 दूसरे file का variable C extern int a; 🔹 6. Type Modifiers 22. short 👉 छोटा int C short int a;
short int क्या है? 👉 छोटी memory लेता है 👉 छोटे range के numbers store करता है ✔️ Typical Size: 2 bytes (16 bits) ✔️ Range: -32,768 से +32,767 ✔️ Example: C short int a = 100; 👉 जब आपको पता है value छोटी ही रहेगी → short int use कर सकते हो 

23. long 👉 बड़ा int C long int b;
long int क्या है? 👉 ज्यादा memory लेता है 👉 बड़े numbers store कर सकता है ✔️ Typical Size: 4 bytes (या कुछ systems में 8 bytes) ✔️ Range: लगभग -2 अरब से +2 अरब (system पर depend) ✔️ Example: C long int b = 1000000; 🔹 3. Comparison Type Size (approx) Range short int 2 byte छोटा int 4 byte medium या long int 4 या 8 byte बड़ा 🔹 4. कब क्या use करें? 👉 short int memory बचानी हो , छोटे data हों 👉 long int बड़े numbers (जैसे population, बड़े calculations) 
24. signed 👉 positive + negative C signed int a; 25. unsigned 👉 सिर्फ positive C unsigned int a; 🔹 7. User Defined Types 26. struct 👉 structure (group data) C struct student { int id; }; 27. union 👉 same memory share C union data { int a; float b; }; 28. enum 👉 named constants C enum day {Mon, Tue}; 29. typedef 👉 नया नाम देना C typedef int number;                                 🔹 Constants & Special 30. const 👉 value change नहीं होगी C const int a = 10; 31. sizeof 👉 memory size C printf("%d", sizeof(int)); 32. volatile 👉 value कभी भी बदल सकती है (hardware/interrupt) C volatile int x;
🔥 Quick समझ: Data type → int, float, char Decision → if, else, switch Loop → for, while, do Jump → break, continue Advanced → struct, union, enum

C पहचानकर्ता
आइडेंटिफायर से तात्पर्य उन संस्थाओं से दिया गया है जैसे चर, कार्य, संरचना आदि।
पहचानकर्ता अद्वितीय होना चाहिए। वे कार्यक्रम के निष्पादन के दौरान इसे पहचानने के लिए एक इकाई को एक अनूठा नाम देने के लिए बनाए गए हैं। उदाहरण के लिए:

int money;
double accountBalance;
यहाँ, पैसा और खाता पहचानकर्ता हैं।
यह भी याद रखें, पहचानकर्ता नाम कीवर्ड से अलग होना चाहिए। आप int का उपयोग पहचानकर्ता के रूप में नहीं कर सकते क्योंकि int एक कीवर्ड है।पहचानकर्ताओं के नामकरण के नियम
1.एक मान्य पहचानकर्ता में अक्षर (अपरकेस और लोअरकेस अक्षर), अंक और अंडरस्कोर हो सकते हैं।
2.एक पहचानकर्ता का पहला अक्षर या तो एक अक्षर या अंडरस्कोर होना चाहिए।
3. आप पहचानकर्ता के रूप में int, जबकि आदि जैसे कीवर्ड का उपयोग नहीं कर सकते।
4. कोई पहचानकर्ता कब तक हो सकता है, इस पर कोई नियम नहीं है। हालाँकि, आप कुछ कंपाइलरों में समस्याओं में चल सकते हैं यदि पहचानकर्ता 31 वर्णों से अधिक लंबा हो।
C चर, निरंतर और साहित्य
(C Variables, Constants and Literals)
इस ट्यूटोरियल में, आप चर के नामकरण के लिए चर और नियमों के बारे में जानेंगे। आप सी प्रोग्रामिंग में विभिन्न शाब्दिक और स्थिरांक बनाने के तरीके के बारे में भी जानेंगे।
चर (Variables)
प्रोग्रामिंग में, डेटा रखने के लिए एक चर एक कंटेनर (भंडारण क्षेत्र) है।भंडारण क्षेत्र को इंगित करने के लिए, प्रत्येक चर को एक विशिष्ट नाम (पहचानकर्ता) दिया जाना चाहिए। चर नाम केवल एक स्मृति स्थान का प्रतीकात्मक प्रतिनिधित्व है।
उदाहरण के लिए:int playerScore = 95;
यहाँ, प्लेयरस्कोर इंट टाइप का एक वैरिएबल है। यहां, चर को एक पूर्णांक मान 95 सौंपा गया है।
एक चर का मूल्य बदला जा सकता है, इसलिए नाम चर।

char ch = 'a';

// some code

ch = 'l';

एक चर नामकरण के लिए नियम
1. एक चर नाम में केवल अक्षर (अपरकेस और लोअरकेस अक्षर), अंक और अंडरस्कोर हो सकते हैं।
2. एक चर का पहला अक्षर या तो एक अक्षर या एक अंडरस्कोर होना चाहिए।
3. एक चर नाम (पहचानकर्ता) कितने समय तक हो सकता है, इस पर कोई नियम नहीं है। हालाँकि, आप कुछ कंपाइलरों में समस्याएँ चला सकते हैं यदि चर नाम 31 वर्णों से अधिक लंबा हो।
C एक जोरदार टाइप की गई भाषा है। इसका मतलब यह है कि घोषित होने के बाद परिवर्तनशील प्रकार को बदला नहीं जा सकता। उदाहरण के लिए:
int number = 5;      // integer variable
number = 5.5;        // error
double number;       // error

यहाँ, संख्या चर का प्रकार int है। आप इस चर के लिए एक फ़्लोटिंग-पॉइंट (दशमलव) मान 5.5 असाइन नहीं कर सकते। इसके अलावा, आप चर के डेटा प्रकार को दोगुना करने के लिए फिर से परिभाषित नहीं कर सकते। वैसे, C में दशमलव मानों को संग्रहीत करने के लिए, आपको इसके प्रकार को डबल या फ्लोट घोषित करने की आवश्यकता है।

शाब्दिक (Literals)

साहित्य वे डेटा हैं जिनका उपयोग निश्चित मूल्यों का प्रतिनिधित्व करने के लिए किया जाता है। उन्हें सीधे कोड में उपयोग किया जा सकता है। उदाहरण के लिए: 1, 2.5, 'सी' आदि।

यहाँ 1, 2.5 और 'c' शाब्दिक हैं। क्यों? आप इन शर्तों को अलग-अलग मान निर्दिष्ट नहीं कर सकते।

1. पूर्णांकों (Integers) पूर्णांक एक संख्यात्मक शाब्दिक (संख्याओं से जुड़ा हुआ) बिना किसी अंश या घातीय भाग के होता है। C प्रोग्रामिंग में तीन प्रकार के पूर्णांक शाब्दिक हैं:

  • decimal (base 10)
  • octal (base 8)
  • hexadecimal (base 16)      
  • उदाहरण के लिए: 
  • Decimal: 0, -9, 22 etc
    Octal: 021, 077, 033 etc
    Hexadecimal: 0x7f, 0x2a, 0x521 etc
सी प्रोग्रामिंग में, ऑक्टल 0 से शुरू होता है, और हेक्साडेसिमल 0x से शुरू होता है।
2. फ्लोटिंग-पॉइंट लिटरल फ्लोटिंग-पॉइंट शाब्दिक एक संख्यात्मक शाब्दिक है जिसमें एक आंशिक रूप या एक घातांक रूप होता है। उदाहरण के लिए:
-2.0
0.0000234
-0.22E-5
3. वर्ण (Characters)
एक चरित्र शाब्दिक एकल उद्धरण चिह्नों के अंदर एक एकल वर्ण संलग्न करके बनाया गया है। उदाहरण के लिए: 'a', 'm', 'F', '2', '}' आदि।
4. अनुक्रम से बचे (Escape Sequences) कभी-कभी, उन वर्णों का उपयोग करना आवश्यक है जिन्हें टाइप नहीं किया जा सकता है या सी प्रोग्रामिंग में विशेष अर्थ है। उदाहरण के लिए: newline (enter), tab, question mark आदि।
इन पात्रों का उपयोग करने के लिए, एस्केप सीक्वेंस का उपयोग किया जाता है।
उदाहरण के लिए: \ n का उपयोग एक नई रेखा के लिए किया जाता है। बैकस्लैश \ _ के कारण संकलक द्वारा सामान्य तरीके से बचते हैं।
5. स्ट्रिंग लिटरल (String Literals) एक स्ट्रिंग शाब्दिक दोहरे उद्धरण चिह्नों में संलग्न वर्णों का एक क्रम है। उदाहरण के लिए:
"good"                  //स्ट्रिंग स्थिर (string constant)
""                       //अशक्त स्ट्रिंग स्थिरांक
                  (null string constant)
"      "               //छह सफेद स्थान की निरंतरता
                  (string constant of six white space)
"x"                      //एकल चरित्र वाले स्ट्रिंग निरंतर।
                            (string constant having a single character)
"Earth is round\n"  //एक नई रेखा के साथ स्ट्रिंग
                            (prints string with a newline)
स्थिरांक (Constants)
यदि आप एक वैरिएबल को परिभाषित करना चाहते हैं जिसका मान नहीं बदला जा सकता है, तो आप कॉन्स्टेबल कीवर्ड का उपयोग कर सकते हैं। यह एक स्थिरांक का निर्माण करेगा। उदाहरण के लिए,
const double PI = 3.14;
ध्यान दें, हमने कीवर्ड कास्ट जोड़ा है।
यहां, पीआई एक प्रतीकात्मक स्थिर है; इसका मान नहीं बदला जा सकता है।
const double PI = 3.14;
PI = 2.9; //Error
C डेटा प्रकार
(C Data Types)

इस ट्यूटोरियल में, आप C प्रोग्रामिंग में बुनियादी डेटा प्रकार जैसे int, float, char आदि के बारे में जानेंगे।
सी प्रोग्रामिंग में, डेटा प्रकार चर के लिए घोषणाएं हैं। यह चर के साथ जुड़े डेटा के प्रकार और आकार को निर्धारित करता है। उदाहरण के लिए,
int myVar;
यहाँ, myVar int (पूर्णांक) प्रकार का एक चर है। Int का आकार 4 बाइट्स है।मूल प्रकार
यहां त्वरित पहुंच के लिए सी प्रोग्रामिंग में आमतौर पर उपयोग किए जाने वाले प्रकारों वाली एक तालिका है।

पूर्णांक (int)
पूर्णांक पूर्णांक हैं, जिसमें शून्य, सकारात्मक और नकारात्मक दोनों मान हो सकते हैं, लेकिन दशमलव मान नहीं हैं। उदाहरण के लिए, 0, -5, 10
पूर्णांक चर घोषित करने के लिए हम int का उपयोग कर सकते हैं।
int id;
यहाँ, id एक प्रकार का पूर्णांक है।
आप C प्रोग्रामिंग में एक साथ कई वेरिएबल्स घोषित कर सकते हैं। उदाहरण के लिए
int id , age;
इंट (int) का आकार आमतौर पर 4 बाइट्स (32 बिट्स) होता है। और, यह 232 अलग-अलग राज्यों को -2147483648 से 2147483647 तक ले जा सकता है।
फ्लोट और डबल (float and double) फ्लोट और डबल का उपयोग वास्तविक संख्याओं को रखने के लिए किया जाता है।
float salary;
double price;
सी में, फ्लोटिंग-पॉइंट नंबरों को भी घातीय में दर्शाया जा सकता है। उदाहरण के लिए,
float normalizationFactor = 22.442e2;
फ्लोट और डबल में क्या अंतर है?
फ्लोट (एकल परिशुद्धता फ्लोट डेटा प्रकार) का आकार 4 बाइट्स है। और डबल (डबल सटीक फ्लोट डेटा प्रकार) का आकार 8 बाइट्स है।
चर (Char) :- कीवर्ड वर्ण का उपयोग वर्ण प्रकार चर घोषित करने के लिए किया जाता है। उदाहरण के लिए,
char test = 'h';
वर्ण चर का आकार 1 बाइट है।
शून्य (void) :- शून्य एक अपूर्ण प्रकार है। इसका अर्थ है "कुछ भी नहीं" या "कोई प्रकार नहीं"। आप शून्य को अनुपस्थित मान सकते हैं
उदाहरण के लिए, यदि कोई फ़ंक्शन कुछ भी नहीं लौटा रहा है, तो उसका रिटर्न प्रकार शून्य होना चाहिए।
ध्यान दें, आप शून्य प्रकार के चर नहीं बना सकते हैं।
छोटा और लंबा (short and long) :- यदि आपको बड़ी संख्या का उपयोग करने की आवश्यकता है, तो आप लंबे समय तक एक प्रकार का उपयोग कर सकते हैं। ऐसे:
long a;
long long b;
long double c;
यहां चर और बी पूर्णांक मानों को संग्रहीत कर सकते हैं। और, c एक फ्लोटिंग-पॉइंट नंबर स्टोर कर सकता है।
यदि आप सुनिश्चित हैं, केवल एक छोटा पूर्णांक ([6732,767, +32,767] श्रेणी) का उपयोग किया जाएगा, तो आप कम उपयोग कर सकते हैं।
short d; 
आप हमेशा आकार () ऑपरेटर का उपयोग करके एक चर के आकार की जांच कर सकते हैं।
#include <stdio.h>      
int main() {
  short a;
  long b;
  long long c;
  long double d;
  printf("size of short = %d bytes\n", sizeof(a));
  printf("size of long = %d bytes\n", sizeof(b));
  printf("size of long long = %d bytes\n", sizeof(c));
  printf("size of long double= %d bytes\n", sizeof(d));
  return 0;
}
हस्ताक्षरित और अहस्ताक्षरित (signed and unsigned) :- C में, हस्ताक्षरित और अहस्ताक्षरित प्रकार संशोधक हैं। आप उनका उपयोग करके डेटा प्रकार के डेटा संग्रहण को बदल सकते हैं। उदाहरण के लिए,
unsigned int x;
int y;
यहां, चर x केवल शून्य और सकारात्मक मान रख सकता है क्योंकि हमने अहस्ताक्षरित संशोधक का उपयोग किया है।
Int के आकार को ध्यान में रखते हुए 4 बाइट्स है, वेरिएबल y, -232 से 232-1 तक मान रख सकता है, जबकि वेरिएबल x 0 से 232-1 तक मान रख सकता है।
सी इनपुट आउटपुट (I / O)
C Input Output (I/O)
इस ट्यूटोरियल में, आप उपयोगकर्ता से इनपुट लेने के लिए स्कैनफ () फ़ंक्शन का उपयोग करना सीखेंगे और उपयोगकर्ता को आउटपुट प्रदर्शित करने के लिए प्रिंटफ () फ़ंक्शन का उपयोग करेंगे।
C आउटपुट सी प्रोग्रामिंग में, प्रिंटफ () मुख्य आउटपुट फ़ंक्शन में से एक है। फ़ंक्शन स्क्रीन पर स्वरूपित आउटपुट भेजता है। उदाहरण के लिए,
उदाहरण 1: C आउटपुट

#include <stdio.h>    

int main()
{ 
    // Displays the string inside quotations
    printf("C Programming");
    return 0;
}

Output  प्राप्त हुआ
C Programming
यह कार्यक्रम कैसे काम करता है?
1. सभी मान्य सी कार्यक्रमों में मुख्य () फ़ंक्शन होना चाहिए। कोड निष्पादन मुख्य main () फ़ंक्शन की शुरुआत से शुरू होता है।
2. printf () स्क्रीन पर स्वरूपित आउटपुट भेजने के लिए एक लाइब्रेरी फ़ंक्शन है। फ़ंक्शन स्ट्रिंग को कोटेशन के अंदर प्रिंट करता है।
3. हमारे प्रोग्राम में printf () का उपयोग करने के लिए, हमें #include <stdio.h> स्टेटमेंट का उपयोग करके stdio.h हैडर फाइल को शामिल करना होगा।
4. return 0; main() फ़ंक्शन के अंदर स्टेटमेंट प्रोग्राम की "एक्जिट स्थिति" है। यह वैकल्पिक है।
उदाहरण : पूर्णांक आउटपुट (Integer Output)
#include <stdio.h>
int main()
{
    int testInteger = 5;
    printf("Number = %d", testInteger);
    return 0;
} 
output :-  Number=5

हम int प्रकार मुद्रित करने के लिए% d प्रारूप निर्दिष्टक का उपयोग करते हैं। यहां, कोटेशन के अंदर% d को टेस्टइंटर के मान से बदल दिया जाएगा
उदाहरण : फ्लोट और डबल आउटपुट (float and double Output) #include <stdio.h>
int main()
{
    float number1 = 13.5;
    double number2 = 12.4;
     printf("number1 = %f\n", number1);
    printf("number2 = %lf", number2);
    return 0;
}
output:-
number1 = 13.500000
number2 = 12.400000
फ्लोट को प्रिंट करने के लिए, हम% f प्रारूप निर्दिष्टक का उपयोग करते हैं। इसी तरह, हम दोहरे मानों को प्रिंट करने के लिए% lf का उपयोग करते हैं
उदाहरण : वर्ण मुद्रित करें (Print Characters)
#include <stdio.h>
int main()
{
    char chr = 'a';    
    printf("character = %c", chr);  
    return 0;
} 
output:- character = a
चार्ट प्रिंट करने के लिए, हम% c प्रारूप निर्दिष्टक का उपयोग करते हैं
C इनपुट (C Input) सी प्रोग्रामिंग में, scanf() उपयोगकर्ता से इनपुट लेने के लिए आमतौर पर उपयोग किए जाने वाले फ़ंक्शन में से एक है। scanf () फ़ंक्शन मानक इनपुट जैसे कीबोर्ड से फॉर्मेट किए गए इनपुट को पढ़ता है।
उदाहरण : इंटेगर इनपुट / आउटपुट (Integer Input/Output)
#include <stdio.h>
int main()
{
    int testInteger;
    printf("Enter an integer: ");
    scanf("%d", &testInteger);  
    printf("Number = %d",testInteger);
    return 0;
}
Output
Enter an integer: 4
Number = 4
यहां, हमने scanf () फ़ंक्शन के अंदर उपयोगकर्ता से इंट्रस्ट इनपुट लेने के लिए % d प्रारूप निर्दिष्ट का उपयोग किया है। जब उपयोगकर्ता एक पूर्णांक में प्रवेश करता है, तो यह testInteger चर में संग्रहीत होता है।
उदाहरण :
फ्लोट और डबल इनपुट / आउटपुट (Float and Double Input/Output) #include <stdio.h>
int main()
{
    float num1;
    double num2;
     printf("Enter a number: ");
    scanf("%f", &num1);
    printf("Enter another number: ");
    scanf("%lf", &num2);
     printf("num1 = %f\n", num1);
    printf("num2 = %lf", num2);
     return 0;
}
Output
Enter a number: 12.523
Enter another number: 10.2
num1 = 12.523000
num2 = 10.200000
हम फ्लोट(float) और डबल (double) के लिए क्रमशः% f और% 1f प्रारूप निर्दिष्ट करते हैं।
उदाहरण : C अक्षर I / O (C Character I/O)
#include <stdio.h>
int main()
{
    char chr;
    printf("Enter a character: ");
    scanf("%c",&chr);     
    printf("You entered %c.", chr);  
    return 0;

Output

Enter a character: g
You entered g  
जब उपर्युक्त कार्यक्रम में एक चरित्र उपयोगकर्ता द्वारा दर्ज किया जाता है, तो चरित्र ही संग्रहीत नहीं होता है। इसके बजाय, पूर्णांक मान (ASCII मान) संग्रहीत किया जाता है।
और जब हम % c टेक्स्ट फॉर्मेट का उपयोग करके उस मान को प्रदर्शित करते हैं, तो दर्ज किया गया वर्ण प्रदर्शित होता है। यदि हम वर्ण प्रदर्शित करने के लिए% d का उपयोग करते हैं, तो यह ASCII मान मुद्रित होता है।

उदाहरण : ASCII मान (ASCII Value)
#include <stdio.h>
int main()
{
    char chr;
    printf("Enter a character: ");
    scanf("%c", &chr);     
 
    // When %c is used, a character is displayed
    printf("You entered %c.\n",chr);  
 
    // When %d is used, ASCII value is displayed
    printf("ASCII value is %d.", chr);  
    return 0;
}
output

Enter a character: g

You entered g.
ASCII value is 103.
आई / ओ मल्टीपल वैल्यू (I/O Multiple Values) यहां बताया गया है कि आप उपयोगकर्ता से कितने इनपुट ले सकते हैं और उन्हें प्रदर्शित कर सकते हैं।
#include <stdio.h>
int main()
{
    int a;
    float b;
 
    printf("Enter integer and then a float: ");
  
    // Taking multiple inputs
    scanf("%d%f", &a, &b);
 
    printf("You entered %d and %f", a, b);  
    return 0;
}
Output
Enter integer and then a float: -3
3.4
You entered -3 and 3.400000

I / O के लिए प्रारूप विनिर्देशक (Format Specifiers for I/O) जैसा कि आप उपरोक्त उदाहरणों से देख सकते हैं, हम उपयोग करते हैं

  • %d for int
  • %f for float
  • %lf for double
  • %c for char

 यहां आमतौर पर उपयोग किए जाने वाले सी डेटा प्रकारों की सूची और उनके प्रारूप विनिर्देशक हैं।

सी प्रोग्रामिंग ऑपरेटर (C Programming Operators)

इस ट्यूटोरियल में, आप उदाहरणों की मदद से C प्रोग्रामिंग में विभिन्न ऑपरेटरों के बारे में जानेंगे।

एक ऑपरेटर एक प्रतीक है जो एक मूल्य या एक चर पर संचालित होता है। उदाहरण के लिए: + एक ऑपरेटर है जो अतिरिक्त प्रदर्शन करता है

C के पास विभिन्न ऑपरेशन करने के लिए ऑपरेटरों की एक विस्तृत श्रृंखला है।

C अंकगणित संचालक (C Arithmetic Operators) एक अंकगणितीय ऑपरेटर संख्यात्मक मानों (स्थिरांक और चर) पर गणितीय संचालन जैसे जोड़, घटाव, गुणा, भाग आदि करता है।

उदाहरण : अंकगणित संचालक (Arithmetic Operators)

#include <stdio.h>

int main()
{
    int a = 9,b = 4, c;
    
    c = a+b;
    printf("a+b = %d \n",c);
    c = a-b;
    printf("a-b = %d \n",c);
    c = a*b;
    printf("a*b = %d \n",c);
    c = a/b;
    printf("a/b = %d \n",c);
    c = a%b;
    printf("Remainder when a divided by b = %d \n",c);
        return 0;
}

Output

a+b = 13
a-b = 5
a*b = 36
a/b = 2
Remainder when a divided by b=1

संचालक +, - और * इसके अलावा, घटाव और गुणन क्रमशः गणना करते हैं, जैसा कि आपने उम्मीद की थी।

सामान्य गणना में, 9/4 = 2.25। हालाँकि, आउटपुट प्रोग्राम में 2 है।

इसका कारण यह है कि दोनों चर ए और बी पूर्णांक हैं। इसलिए, आउटपुट भी पूर्णांक है। कंपाइलर दशमलव बिंदु के बाद शब्द की उपेक्षा करता है और 2.25 के बजाय उत्तर 2 दिखाता है।

वह modulo ऑपरेटर% शेष की गणना करता है। जब a = 9 को b = 4 से विभाजित किया जाता है, तो शेष 1. 1.% ऑपरेटर केवल पूर्णांकों के साथ उपयोग किया जा सकता है।

मान लीजिए a = 5.0, b = 2.0, c = 5 और d = 2. फिर सी प्रोग्रामिंग में,// Either one of the operands is a floating-point number

a/b = 2.5  
a/d = 2.5  
c/b = 2.5  
// Both operands are integers
c/d = 2
C वृद्धि और कमी ऑपरेटर (C Increment and Decrement Operators)
C प्रोग्रामिंग में दो ऑपरेटर हैं increment ++ और decrement - 1 से एक ऑपरेंड (स्थिर या चर) के मान को बदलने के लिए।
इंक्रीमेंट ++ 1 से वैल्यू बढ़ाता है जबकि डेक्रिमेंट - 1 से वैल्यू घटता है। ये दोनों ऑपरेटर्स एकरी ऑपरेटर्स हैं, जिसका मतलब है कि ये केवल एक ही ऑपरेंड पर काम करते हैं।
उदाहरण : वृद्धि और कमी ऑपरेटर
#include <stdio.h>
int main()
{
    int a = 10, b = 100;
    float c = 10.5, d = 100.5;
     printf("++a = %d \n", ++a);
    printf("--b = %d \n", --b);
    printf("++c = %f \n", ++c);
    printf("--d = %f \n", --d);
     return 0;
}

Output

++a = 11
--b = 99
++c = 11.500000
--d = 99.500000
यहां, ऑपरेटर्स ++ और - का उपयोग उपसर्ग के रूप में किया जाता है। इन दोनों संचालकों का उपयोग उप-भाग जैसे ++ और a-- के रूप में भी किया जा सकता है। जब पोस्टफ़िक्स के रूप में उपयोग किया जाता है तो वेतन वृद्धि और क्षरण ऑपरेटर कैसे काम करते हैं, इस बारे में अधिक जानने के लिए इस पृष्ठ पर जाएँ।
C असाइनमेंट ऑपरेटर (C Assignment Operators)
एक असाइनमेंट ऑपरेटर का उपयोग किसी वैरिएबल के मान को असाइन करने के लिए किया जाता है। सबसे सामान्य असाइनमेंट ऑपरेटर = है

उदाहरण : असाइनमेंट ऑपरेटर्स
#include <stdio.h>
int main()
{
    int a = 5, c;
     c = a;      // c is 5
    printf("c = %d\n", c);
    c += a;     // c is 10 
    printf("c = %d\n", c);
    c -= a;     // c is 5
    printf("c = %d\n", c);
    c *= a;     // c is 25
    printf("c = %d\n", c);
    c /= a;     // c is 5
    printf("c = %d\n", c);
    c %= a;     // c = 0
    printf("c = %d\n", c);
     return 0;
}

Output

c = 5 
c = 10 
c = 5 
c = 25 
c = 5 
c = 0

C रिलेशनल ऑपरेटर्स
एक रिलेशनल ऑपरेटर दो ऑपरेंड के बीच संबंधों की जाँच करता है। यदि संबंध सत्य है, तो यह 1 लौटता है; यदि संबंध गलत है, तो यह मान 0 देता है।
रिलेशनल ऑपरेटर का उपयोग निर्णय लेने और लूप में किया जाता है।
उदाहरण : रिलेशनल ऑपरेटर्स
#include <stdio.h>
int main()
{
    int a = 5, b = 5, c = 10;
     printf("%d == %d is %d \n", a, b, a == b);
    printf("%d == %d is %d \n", a, c, a == c);
    printf("%d > %d is %d \n", a, b, a > b);
    printf("%d > %d is %d \n", a, c, a > c);
    printf("%d < %d is %d \n", a, b, a < b);
    printf("%d < %d is %d \n", a, c, a < c);
    printf("%d != %d is %d \n", a, b, a != b);
    printf("%d != %d is %d \n", a, c, a != c);
    printf("%d >= %d is %d \n", a, b, a >= b);
    printf("%d >= %d is %d \n", a, c, a >= c);
    printf("%d <= %d is %d \n", a, b, a <= b);
    printf("%d <= %d is %d \n", a, c, a <= c);
     return 0;
}

Output

5 == 5 is 1
5 == 10 is 0
5 > 5 is 0
5 > 10 is 0
5 < 5 is 0
5 < 10 is 1
5 != 5 is 0
5 != 10 is 1
5 >= 5 is 1
5 >= 10 is 0
5 <= 5 is 1
5 <= 10 is 1 
C तार्किक संचालक
लॉजिकल ऑपरेटर वाली अभिव्यक्ति 0 या 1 पर निर्भर करती है, जो इस बात पर निर्भर करती है कि अभिव्यक्ति सही है या गलत। लॉजिकल ऑपरेटर आमतौर पर सी प्रोग्रामिंग में निर्णय लेने में उपयोग किया जाता है।
उदाहरण: तार्किक संचालक (Logical Operators)
#include <stdio.h>
int main()
{
    int a = 5, b = 5, c = 10, result;
     result = (a == b) && (c > b);
    printf("(a == b) && (c > b) is %d \n", result);
     result = (a == b) && (c < b);
    printf("(a == b) && (c < b) is %d \n", result);
     result = (a == b) || (c < b);
    printf("(a == b) || (c < b) is %d \n", result);
     result = (a != b) || (c < b);
    printf("(a != b) || (c < b) is %d \n", result);
     result = !(a != b);
    printf("!(a != b) is %d \n", result);
     result = !(a == b);
    printf("!(a == b) is %d \n", result);
     return 0;
}

Output

(a == b) && (c > b) is 1 
(a == b) && (c < b) is 0 
(a == b) || (c < b) is 1 
(a != b) || (c < b) is 0 
!(a != b) is 1 
!(a == b) is 0 
तार्किक ऑपरेटर कार्यक्रम की व्याख्या (Explanation of logical operator program)
1. (a == b) && (c> 5) 1 का मूल्यांकन करता है क्योंकि दोनों ऑपरेंड (a == b) और (c> b) 1            (सत्य) है।
2. (a == b) && (c <b) 0 का मूल्यांकन करता है क्योंकि ऑपरेंड (c <b) 0 (गलत) है।
3. .(a == बी) || (c <b) 1 का मूल्यांकन करता है क्योंकि (a = b) 1 (सत्य) है।
4. (a! = b) || (c <b) 0 का मूल्यांकन करता है क्योंकि दोनों ऑपरेंड (a! = b) और (c <b) 0 (झूठे) हैं।
5. ! (ए! = बी) 1 का मूल्यांकन करता है क्योंकि ऑपरेंड (ए! = बी) 0 (गलत) है। इसलिए, ((ए! = बी)     1 (सच) है।
6. ! (a == b) 0 का मूल्यांकन करता है क्योंकि (a == b) 1 (सत्य) है। अतः, (a == b) 0 (गलत) है।
C बिटवाइज ऑपरेटर्स (C Bitwise Operators)
अभिकलन के दौरान, गणितीय संचालन जैसे: जोड़, घटाव, गुणा, भाग, आदि को बिट-स्तर में परिवर्तित किया जाता है जो प्रसंस्करण को तेज बनाता है और बिजली की बचत करता है।
बिट-लेवल ऑपरेशंस को करने के लिए बिट प्रोग्रामिंग ऑपरेटर्स को C प्रोग्रामिंग में उपयोग किया जाता है।
अन्य संचालक(Other Operators)
कोमा संचालक (Comma Operator) संबंधित भावों को एक साथ जोड़ने के लिए कोमा संचालकों का उपयोग किया जाता है।
उदाहरण के लिए:
int a,c=5,d;
आकार ऑपरेटर (The sizeof operator) आकार का एक अपरिपक्व ऑपरेटर है जो डेटा (स्थिरांक, चर, सरणी, संरचना, आदि) के आकार को लौटाता है।
उदाहरण: sizeof ऑपरेटर
#include <stdio.h>
int main()
{
    int a;
    float b;
    double c;
    char d;
    printf("Size of int=%lu bytes\n",sizeof(a));
    printf("Size of float=%lu bytes\n",sizeof(b));
    printf("Size of double=%lu bytes\n",sizeof(c));
    printf("Size of char=%lu byte\n",sizeof(d));
     return 0;
}

Output

Size of int = 4 bytes
Size of float = 4 bytes
Size of double = 8 bytes
Size of char = 1 byte
C प्रोग्राम एक वाक्य प्रिंट करने के लिए
Program to Display "Hello, World!"
#include <stdio.h>
int main() {
      printf("Hello, World!");
   return 0;
}

Output

Hello, World!
C अगर ... और कथन
C if...else Statement
C यदि कथन (C if Statement)
C प्रोग्रामिंग में यदि स्टेटमेंट का सिंटैक्स है:
if (test expression) 
{
   // code
}
यदि कथन काम करता है तो कैसे?
यदि स्टेटमेंट कोष्ठक () के अंदर परीक्षण अभिव्यक्ति का मूल्यांकन करता है।
यदि परीक्षण अभिव्यक्ति का मूल्यांकन किया जाता है तो सही, यदि निष्पादित किया जाता है तो शरीर के अंदर के कथन।
यदि परीक्षण अभिव्यक्ति का मूल्यांकन असत्य पर किया जाता है, तो निकाय के अंदर दिए गए कथनों को निष्पादित नहीं किया जाता है।
परीक्षण अभिव्यक्ति को सही (गैर-शून्य मान) और असत्य (0) का मूल्यांकन करने के बारे में अधिक जानने के लिए, रिलेशनल और लॉजिकल ऑपरेटर्स की जांच करें।
if statement program
#include <stdio.h>
int main() {
    int number;
     printf("Enter an integer: ");
    scanf("%d", &number);
      if (number < 0) {
        printf("You entered %d.\n", number);
    }
     printf("The if statement is easy.");
     return 0;
}

Output 1

Enter an integer: -2
You entered -2.
The if statement is easy.
C if...else Statement यदि कथन में वैकल्पिक रूप से ब्लॉक हो सकता है। If..else स्टेटमेंट का सिंटैक्स है:
अगर कैसे ... और क्या statement काम करता है?(How if...else statement works?)
यदि परीक्षण अभिव्यक्ति का मूल्यांकन सही है,
1. यदि निष्पादित किया जाता है तो शरीर के अंदर के कथन।
2. अन्य के शरीर के अंदर के बयानों को निष्पादन से छोड़ दिया गया है।
3. यदि परीक्षण अभिव्यक्ति का मूल्यांकन गलत है,
4. किसी और के body के अंदर दिए गए कथनों को निष्पादित किया जाता है
5. body के अंदर के कथनों को निष्पादन से छोड़ दिया जाता है।
if else statement program #include <stdio.h>
int main() {
    int number;
    printf("Enter an integer: ");
    scanf("%d", &number);
        if  (number%2 == 0) {
        printf("%d is an even integer.",number);
    }
    else {
        printf("%d is an odd integer.",number);
    }
     return 0;
}
Output
Enter an integer: 7
7 is an odd integer
C अगर ... और सीढ़ी (C if...else Ladder)
यदि ... और कथन परीक्षण अभिव्यक्ति के सही या गलत होने के आधार पर दो अलग-अलग कोड निष्पादित करते हैं। कभी-कभी, एक विकल्प को 2 से अधिक संभावनाओं से बनाया जाना चाहिए।
यदि ... और सीढ़ी आपको कई परीक्षण अभिव्यक्तियों के बीच जांच करने और विभिन्न कथनों को निष्पादित करने की अनुमति देती है।
Syntax of if...else Ladder

if (test expression1) {

}

else if(test expression2) {

}

else if (test expression3) {

}

else {

   }

Example 3: C if...else Ladder

#include <stdio.h>

int main() {

    int number1, number2;

    printf("Enter two integers: ");

    scanf("%d %d", &number1, &number2);

        if(number1 == number2) {

        printf("Result: %d = %d",number1,number2);

    }

       else if (number1 > number2) {

        printf("Result: %d > %d", number1, number2);

    }

 

        else {

        printf("Result: %d < %d",number1, number2);

    }

    return 0;

}

Output

Enter two integers: 12

23

Result: 12 < 23


 नेस्टेड अगर ... और (Nested if...else)

यह संभव है कि अगर ... किसी और के शरीर के अंदर एक और बयान शामिल हो तो ... और भी बयान।

उदाहरण : घोंसला अगर ... और (Nested if...else)

नीचे दिया गया यह कार्यक्रम दो पूर्णांकों को संबंधित करता है <,> और = का उपयोग करते हुए अगर ... वरना सीढ़ी के उदाहरण। हालाँकि, हम एक नेस्टेड का उपयोग करेंगे यदि ... इस समस्या को हल करने के लिए और बयान।

#include <stdio.h>

int main() {
    int number1, number2;
    printf("Enter two integers: ");
    scanf("%d %d", &number1, &number2);
     if (number1 >= number2) {
      if (number1 == number2) {
        printf("Result: %d = %d",number1,number2);
      }
      else {
        printf("Result: %d > %d", number1, number2);
      }
    }
    else {
        printf("Result: %d < %d",number1, number2);
    }
     return 0;
}

यदि शरीर के if ... और विवरण में केवल एक कथन है, तो आपको कोष्ठक {} का उपयोग करने की आवश्यकता नहीं है।

For example, this code

if (a > b) {
    print("Hello");
}
print("Hi");

is equivalent to (के बराबर है)

if (a > b)
    print("Hello");
print("Hi");

लूप के लिए सी (C for Loop)

प्रोग्रामिंग में, एक लूप का उपयोग कोड के एक ब्लॉक को दोहराने के लिए किया जाता है जब तक कि निर्दिष्ट शर्त पूरी नहीं होती है।

C प्रोग्रामिंग में तीन प्रकार के लूप हैं:

1. for loop

2. while loop

3. do.... while loop

loop पाश कैसे काम करता है?

1. इनिशियलाइज़ेशन स्टेटमेंट को केवल एक बार निष्पादित किया जाता है।

2. फिर, परीक्षण अभिव्यक्ति का मूल्यांकन किया जाता है। यदि परीक्षण अभिव्यक्ति को गलत का मूल्यांकन किया जाता है, तो लूप को समाप्त कर दिया जाता है।

3. हालाँकि, यदि परीक्षण अभिव्यक्ति का मूल्यांकन सही किया जाता है, तो लूप के लिए निकाय के अंदर कथनों को निष्पादित किया जाता है, और अद्यतन अभिव्यक्ति अपडेट की जाती है।

4. फिर से परीक्षण अभिव्यक्ति का मूल्यांकन किया जाता है।

यह प्रक्रिया तब तक चलती है जब तक कि परीक्षण अभिव्यक्ति झूठी न हो जाए। जब परीक्षण अभिव्यक्ति झूठी होती है, तो लूप समाप्त हो जाता है।पाश फ़्लोचार्ट के लिए (for loop Flowchart)

dio.h>

int main() {

  int i;

  for (i = 1; i < 11; ++i)

  {

    printf("%d ", i);

  }

  return 0;

}

Output

1 2 3 4 5 6 7 8 9 10

1. मैं 1 से आरंभीकृत हूं।

2. परीक्षण अभिव्यक्ति i <11 का मूल्यांकन किया जाता है। चूंकि 1 से कम 11 सच है, लूप के लिए शरीर को निष्पादित किया जाता है। यह स्क्रीन पर 1 (i का मान) प्रिंट करेगा।

3. अद्यतन कथन ++ i निष्पादित किया गया है। अब, i का मान 2 होगा। फिर से, परीक्षण अभिव्यक्ति का मूल्यांकन सत्य के लिए किया जाता है, और लूप के लिए निकाय निष्पादित किया जाता है। यह स्क्रीन पर 2 (i का मूल्य) प्रिंट करेगा।

4. फिर से, अपडेट स्टेटमेंट ++ i को निष्पादित किया जाता है और परीक्षण अभिव्यक्ति i <11 का मूल्यांकन किया जाता है। यह प्रक्रिया 11 वर्ष की होने तक चलती है।

5. जब मैं 11 वर्ष का हो जाता हूं, i <11 गलत हो जाएगा, और लूप समाप्त हो जाएगा।

for loop example

#include <stdio.h>
int main()
{
    int num, count, sum = 0;
     printf("Enter a positive integer: ");
    scanf("%d", &num);
        for(count = 1; count <= num; ++count)
    {
        sum += count;
    }
     printf("Sum = %d", sum);
     return 0;
}
Output
Enter a positive integer: 10

Sum = 55

C जबकि और करो ... जबकि लूप (C while and do...while Loop)

इस ट्यूटोरियल में, आप उदाहरणों की मदद से C प्रोग्रामिंग में लूप करते समय और करना सीखेंगे।

हम जानेंगे while and do..while loop.

while loop

The syntax of the while loop is:

while (testExpression) 
{
    // statements inside the body of the loop 
}

How while loop works?

1. while लूप कोष्ठक () के अंदर परीक्षण अभिव्यक्ति का मूल्यांकन करता है।

2. यदि परीक्षण की अभिव्यक्ति सही है, तो लूप निष्पादित होते समय body के अंदर के कथन। फिर, परीक्षण अभिव्यक्ति का फिर से मूल्यांकन किया जाता है।

3. प्रक्रिया तब तक चलती है जब तक कि परीक्षण अभिव्यक्ति को गलत का मूल्यांकन नहीं किया जाता है।

4. यदि परीक्षण अभिव्यक्ति झूठी है, तो लूप समाप्त हो जाता है (समाप्त होता है)।

while लूप के फ्लोचार्ट

Example : while loop

#include <stdio.h>

int main()

{

    int i = 1;

   

    while (i <= 5)

    {

        printf("%d\n", i);

        ++i;

    }

    return 0;

}

Output

1

2

3

4

5


करते हैं ... जबकि पाश (do...while loop) एक महत्वपूर्ण अंतर के साथ लूप जबकि लूप के समान है। लूप की बॉडी ... जबकि लूप को कम से कम एक बार निष्पादित किया जाता है। तभी, परीक्षण अभिव्यक्ति का मूल्यांकन किया जाता है।

लूप का सिंटैक्स है do...while लूप है:

do

{
   // लूप के body के अंदर statement
}
while (testExpression); 

do...while लूप काम करता है?

1. लूप की बॉडी do...while loop को एक बार निष्पादित किया जाता है। तभी, परीक्षण अभिव्यक्ति का मूल्यांकन किया जाता है।

2. यदि परीक्षण अभिव्यक्ति सही है, तो लूप के शरीर को फिर से निष्पादित किया जाता है और परीक्षण अभिव्यक्ति का मूल्यांकन किया जाता है।

3. यह प्रक्रिया तब तक चलती है जब तक परीक्षण अभिव्यक्ति झूठी नहीं हो जाती।

फ्लोचार्ट ऑफ़ डू ... जबकि लूप (Flowchart of do...while Loop)

Example : do...while loop

#include <stdio.h>

int main()

{

    double number, sum = 0;

         do

    {

        printf("Enter a number: ");

        scanf("%lf", &number);

        sum += number;

    }

    while(number != 0.0);

    printf("Sum = %.2lf",sum);

    return 0;

}

Output

Enter a number: 1.5

Enter a number: 2.4

Enter a number: -3.4

Enter a number: 4.2

Enter a number: 0

Sum = 4.70

सी ब्रेक और जारी है(C break and continue)

C break ब्रेक स्टेटमेंट का सामना होने पर तुरंत लूप समाप्त हो जाता है। इसका सिंटैक्स है:

4. यदि परीक्षण अभिव्यक्ति झूठी है, तो लूप समाप्त होता है।

break; ब्रेक स्टेटमेंट का उपयोग लगभग हमेशा किया जाता है if... else लूप के अंदर स्टेटमेंट का प्रयोग होता है

Example : do...while loop

#include <stdio.h>

int main()

{

    double number, sum = 0;

 

        do

    {

        printf("Enter a number: ");

        scanf("%lf", &number);

        sum += number;

    }

    while(number != 0.0);

    printf("Sum = %.2lf",sum);

    return 0;

}

Output

Enter a number: 1.5

Enter a number: 2.4

Enter a number: -3.4

Enter a number: 4.2

Enter a number: 0

Sum = 4.70

 

Example : break statement

// संख्या के योग की गणना करने का कार्यक्रम (अधिकतम 10 संख्या)

 (Program to calculate the sum of numbers (10 numbers max)

// यदि उपयोगकर्ता एक नकारात्मक संख्या में प्रवेश करता है, तो लूप समाप्त हो जाता है

 If the user enters a negative number, the loop terminates

 #include <stdio.h>

 int main() {

   int i;

   double number, sum = 0.0;

    for (i = 1; i <= 10; ++i) {

      printf("Enter n%d: ", i);

      scanf("%lf", &number);

  // if the user enters a negative number, break the loop (if उपयोगकर्ता एक नकारात्मक संख्या में प्रवेश करता हैतो लूप को तोड़ दें)

       if (number < 0.0) {

         break;

      }

       sum += number; // sum = sum + number;

   }

    printf("Sum = %.2lf", sum);

    return 0;

}

Output

Enter n1: 2.4

Enter n2: 4.5

Enter n3: 3.4

Enter n4: -3

Sum = 10.30


सी जारी है (C continue) जारी statement लूप के वर्तमान पुनरावृत्ति को छोड़ देता है और अगले पुनरावृत्ति के साथ जारी रहता है। इसका सिंटैक्स है: Continue

continue भी if और else के साथ ही प्रयोग होता है

#include <stdio.h>

int main() {

   int i;

   double number, sum = 0.0;

    for (i = 1; i <= 10; ++i) {

      printf("Enter a n%d: ", i);

      scanf("%lf", &number);

       if (number < 0.0) {

         continue;

      }

       sum += number; // sum = sum + number;

   }

    printf("Sum = %.2lf", sum);

    return 0;

}

Output

Enter n1: 1.1

Enter n2: 2.2

Enter n3: 5.5

Enter n4: 4.4

Enter n5: -3.4

Enter n6: -45.5

Enter n7: 34.5

Enter n8: -4.2

Enter n9: -1000

Enter n10: 12

Sum = 59.70

C स्विच स्टेटमेंट (C switch Statement) वह स्विच स्टेटमेंट हमें कई विकल्पों में से एक कोड ब्लॉक निष्पादित करने की अनुमति देता है।आप एक ही काम कर सकते हैं if ... else ...if सीढ़ी। हालांकि, स्विच स्टेटमेंट का सिंटैक्स पढ़ना और लिखना बहुत आसान है।

switch example:-

#include <stdio.h>
int main() 
{
    char operator;
    double n1, n2;
     printf("Enter an operator (+, -, *, /): ");
    scanf("%c", &operator);
    printf("Enter two operands: ");
    scanf("%lf %lf",&n1, &n2);
     switch(operator)
    {
        case '+':
            printf("%.1lf + %.1lf = %.1lf",n1, n2, n1+n2);
            break;
         case '-':
            printf("%.1lf - %.1lf = %.1lf",n1, n2, n1-n2);
            break;
         case '*':
            printf("%.1lf * %.1lf = %.1lf",n1, n2, n1*n2);
            break;
         case '/':
            printf("%.1lf / %.1lf = %.1lf",n1, n2, n1/n2);
            break;
         // operator doesn't match any case constant +, -, *, /
        default:
            printf("Error! operator is not correct");
    }
     return 0;
}

Output

Enter an operator (+, -, *,): -
Enter two operands: 32.5

12.4

सी गोटो स्टेटमेंट (C goto Statement) :- goto स्टेटमेंट हमें प्रोग्राम के नियंत्रण को निर्दिष्ट (specified) लेबल पर स्थानांतरित करने की अनुमति देता है।

उदाहरण: goto स्टेटमेंट

#include <stdio.h>
int main() {
    const int maxInput = 100;
   int i;
   double number, average, sum = 0.0;
    for (i = 1; i <= maxInput; ++i) {
      printf("%d. Enter a number: ", i);
      scanf("%lf", &number);
     // यदि उपयोगकर्ता एक नकारात्मक संख्या में प्रवेश करता है तो कूदने के लिए जाएं
               //go to jump if the user enters a negative number
      if (number < 0.0) {
         goto jump;
      }
      sum += number;
   }
 jump:
   average = sum / (i - 1);
   printf("Sum = %.2f\n", sum);
   printf("Average = %.2f", average);
    return 0;
}

Output

1. Enter a number: 3
2. Enter a number: 4.3
3. Enter a number: 9.3
4. Enter a number: -2.9
Sum = 16.60
Average = 5.53
 32.5 - 12.4 = 20.1

अनुमति देता है।


SNAKE GAME programming # 1


#include <stdio.h> #include <conio.h> #include <windows.h> int width = 20, height = 20; int gameOver; int x, y, fruitX, fruitY, score; int tailX[100], tailY[100]; int nTail; enum eDirection { STOP = 0, LEFT, RIGHT, UP, DOWN}; enum eDirection dir; void gotoxy(int x, int y) { COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } void Setup() { gameOver = 0; dir = STOP; x = width / 2; y = height / 2; fruitX = rand() % width; fruitY = rand() % height; score = 0; } void Draw() { gotoxy(0,0); // स्क्रीन क्लियर करने की बजाय कर्सर को ऊपर ले जाएँ for (int i = 0; i < width+2; i++) printf("#"); printf("\n"); for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { if (j == 0) printf("#"); if (i == y && j == x) printf("O"); else if (i == fruitY && j == fruitX) printf("F"); else { int print = 0; for (int k = 0; k < nTail; k++) { if (tailX[k] == j && tailY[k] == i) { printf("o"); print = 1; } } if (!print) printf(" "); } if (j == width - 1) printf("#"); } printf("\n"); } for (int i = 0; i < width+2; i++) printf("#"); printf("\n"); printf("Score: %d\n", score); } void Input() { if (_kbhit()) { switch (_getch()) { case 'a': dir = LEFT; break; case 'd': dir = RIGHT; break; case 'w': dir = UP; break; case 's': dir = DOWN; break; case 'x': gameOver = 1; break; } } } void Logic() { int prevX = tailX[0]; int prevY = tailY[0]; int prev2X, prev2Y; tailX[0] = x; tailY[0] = y; for (int i = 1; i < nTail; i++) { prev2X = tailX[i]; prev2Y = tailY[i]; tailX[i] = prevX; tailY[i] = prevY; prevX = prev2X; prevY = prev2Y; } switch (dir) { case LEFT: x--; break; case RIGHT: x++; break; case UP: y--; break; case DOWN: y++; break; default: break; } if (x >= width) x = 0; else if (x < 0) x = width - 1; if (y >= height) y = 0; else if (y < 0) y = height - 1; for (int i = 0; i < nTail; i++) if (tailX[i] == x && tailY[i] == y) gameOver = 1; if (x == fruitX && y == fruitY) { score += 10; fruitX = rand() % width; fruitY = rand() % height; nTail++; } } int main() { Setup(); while (!gameOver) { Draw(); Input(); Logic(); Sleep(100); // गेम की स्पीड कंट्रोल करें } return 0; }

🕹️ Controls:

  • W → ऊपर

  • S → नीचे

  • A → बाएँ

  • D → दाएँ

  • X → गेम बंद

SNAKE GAME
अब आपके Snake Game कोड में Game Over स्क्रीन और Restart ऑप्शन जोड़ रहा हूँ। इससे जब गेम खत्म होगा तो एक मैसेज दिखेगा और आप चाहें तो फिर से खेल सकते हैं।
#include <stdio.h> #include <conio.h> #include <windows.h> int width = 20, height = 20; int gameOver; int x, y, fruitX, fruitY, score; int tailX[100], tailY[100]; int nTail; enum eDirection { STOP = 0, LEFT, RIGHT, UP, DOWN}; enum eDirection dir; void gotoxy(int x, int y) { COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } void Setup() { gameOver = 0; dir = STOP; x = width / 2; y = height / 2; fruitX = rand() % width; fruitY = rand() % height; score = 0; nTail = 0; } void Draw() { gotoxy(0,0); for (int i = 0; i < width+2; i++) printf("#"); printf("\n"); for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { if (j == 0) printf("#"); if (i == y && j == x) printf("O"); else if (i == fruitY && j == fruitX) printf("F"); else { int print = 0; for (int k = 0; k < nTail; k++) { if (tailX[k] == j && tailY[k] == i) { printf("o"); print = 1; } } if (!print) printf(" "); } if (j == width - 1) printf("#"); } printf("\n"); } for (int i = 0; i < width+2; i++) printf("#"); printf("\n"); printf("Score: %d\n", score); } void Input() { if (_kbhit()) { switch (_getch()) { case 'a': dir = LEFT; break; case 'd': dir = RIGHT; break; case 'w': dir = UP; break; case 's': dir = DOWN; break; case 'x': gameOver = 1; break; } } } void Logic() { int prevX = tailX[0]; int prevY = tailY[0]; int prev2X, prev2Y; tailX[0] = x; tailY[0] = y; for (int i = 1; i < nTail; i++) { prev2X = tailX[i]; prev2Y = tailY[i]; tailX[i] = prevX; tailY[i] = prevY; prevX = prev2X; prevY = prev2Y; } switch (dir) { case LEFT: x--; break; case RIGHT: x++; break; case UP: y--; break; case DOWN: y++; break; default: break; } if (x >= width) x = 0; else if (x < 0) x = width - 1; if (y >= height) y = 0; else if (y < 0) y = height - 1; for (int i = 0; i < nTail; i++) if (tailX[i] == x && tailY[i] == y) gameOver = 1; if (x == fruitX && y == fruitY) { score += 10; fruitX = rand() % width; fruitY = rand() % height; nTail++; } } void GameOverScreen() { system("cls"); printf("\n\n######## GAME OVER ########\n"); printf("Your final score: %d\n", score); printf("Press R to Restart or Q to Quit\n"); char choice; while (1) { choice = _getch(); if (choice == 'r' || choice == 'R') { Setup(); return; // restart game } else if (choice == 'q' || choice == 'Q') { exit(0); // quit game } } } int main() { Setup(); while (1) { while (!gameOver) { Draw(); Input(); Logic(); Sleep(100); } GameOverScreen(); // जब गेम खत्म हो तो स्क्रीन दिखाएँ } return 0; }

✨ नया फीचर:

  • जब Snake खुद से टकराएगा तो Game Over स्क्रीन दिखेगी।

  • वहाँ आपको स्कोर दिखाई देगा।

  • R दबाने पर गेम फिर से शुरू होगा।

  • Q दबाने पर गेम बंद हो जाएगा।

हम बस गेम बोर्ड का साइज बड़ा कर देंगे

👉 इसके लिए आपको बस width और height वेरिएबल्स को बढ़ाना है। अभी ये 20×20 हैं, इन्हें आप 40×20 या 50×25 कर सकते हैं ताकि Snake को घूमने के लिए ज़्यादा जगह मिले।

int width = 40; // पहले 20 था int height = 25; // पहले 20 था

बाकी कोड वही रहेगा, बस ये दो वैल्यू बदलने से Snake को बड़ा मैदान मिलेगा और गेम और मज़ेदार लगेगा।

C भाषा में Console Games बनाए जा सकते हैं।
Tic Tac Toe GAME programming # 2

#include <stdio.h> #include <conio.h> char board[3][3]; char currentPlayer; void resetBoard() { for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) board[i][j] = ' '; currentPlayer = 'X'; } void printBoard() { printf("\n"); for (int i = 0; i < 3; i++) { printf(" %c | %c | %c \n", board[i][0], board[i][1], board[i][2]); if (i < 2) printf("---|---|---\n"); } printf("\n"); } int checkWin() { // Rows for (int i = 0; i < 3; i++) if (board[i][0] == currentPlayer && board[i][1] == currentPlayer && board[i][2] == currentPlayer) return 1; // Columns for (int i = 0; i < 3; i++) if (board[0][i] == currentPlayer && board[1][i] == currentPlayer && board[2][i] == currentPlayer) return 1; // Diagonals if (board[0][0] == currentPlayer && board[1][1] == currentPlayer && board[2][2] == currentPlayer) return 1; if (board[0][2] == currentPlayer && board[1][1] == currentPlayer && board[2][0] == currentPlayer) return 1; return 0; } int checkDraw() { for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) if (board[i][j] == ' ') return 0; return 1; } void switchPlayer() { currentPlayer = (currentPlayer == 'X') ? 'O' : 'X'; } int main() { int row, col; resetBoard(); while (1) { printBoard(); printf("Player %c, enter row and column (0-2): ", currentPlayer); scanf("%d %d", &row, &col); if (row < 0 || row > 2 || col < 0 || col > 2 || board[row][col] != ' ') { printf("Invalid move! Try again.\n"); continue; } board[row][col] = currentPlayer; if (checkWin()) { printBoard(); printf("Player %c wins!\n", currentPlayer); break; } if (checkDraw()) { printBoard(); printf("It's a draw!\n"); break; } switchPlayer(); } return 0; }

🎮 कैसे खेलें:

  • दो खिलाड़ी बारी-बारी से row और column (0–2) डालेंगे।

  • X और O से बोर्ड भरेगा।

  • जो खिलाड़ी पहले 3 एक लाइन में बना लेगा (row, column या diagonal), वही जीत जाएगा।

  • अगर पूरा बोर्ड भर गया और कोई नहीं जीता → Draw

  • 📝 उदाहरण गेम:

    • Player X: 0 0 → ऊपर-बाएँ में X

    • Player O: 1 1 → बीच में O

    • Player X: 0 1 → ऊपर-मध्य में X

    • Player O: 2 2 → नीचे-दाएँ में O

    • Player X: 0 2 → ऊपर-दाएँ में X

    अब Player X ने ऊपर की पूरी row भर दी → X जीत गया!

🎮 Number Guessing Game (C Code) # 3

#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int number, guess, attempts = 0; srand(time(0)); // रैंडम नंबर जनरेट करने के लिए number = rand() % 100 + 1; // 1 से 100 के बीच नंबर printf("Welcome to Number Guessing Game!\n"); printf("Guess the number between 1 and 100\n"); do { printf("Enter your guess: "); scanf("%d", &guess); attempts++; if (guess > number) { printf("Too high! Try again.\n"); } else if (guess < number) { printf("Too low! Try again.\n"); } else { printf("Congratulations! You guessed it in %d attempts.\n", attempts); } } while (guess != number); return 0; }

गेम का आइडिया:

  • कंप्यूटर एक गुप्त नंबर चुन लेता है (जैसे 1 से 100 के बीच)।

  • आपका काम है उस नंबर को अनुमान लगाना (guess करना)

  • हर बार जब आप कोई नंबर डालेंगे, कंप्यूटर बताएगा:

    • अगर आपका अनुमान ज़्यादा बड़ा है → "Too high!"

    • अगर आपका अनुमान ज़्यादा छोटा है → "Too low!"

    • अगर आपका अनुमान सही है → "Congratulations!"


                🌀 Maze Runner with Visible Exit  # 4

#include <stdio.h>

#include <conio.h>

#include <windows.h>

#include <stdlib.h>

#include <time.h>


#define WIDTH 20

#define HEIGHT 10

#define ENEMY_COUNT 2


char maze[HEIGHT][WIDTH+1] = {

    "####################",

    "#     #            #",

    "# ### # ########## #",

    "# #   #       #    #",

    "# # ####### # #### #",

    "# #       # #      #",

    "# ####### # ###### #",

    "#       # #        #",

    "# ####### ##########",

    "#                 X#"   // Exit यहाँ है

};


int playerX = 1, playerY = 1;

int enemyX[ENEMY_COUNT], enemyY[ENEMY_COUNT];


void drawMaze() {

    system("cls");

    for (int i = 0; i < HEIGHT; i++) {

        for (int j = 0; j < WIDTH; j++) {

            if (i == playerY && j == playerX) {

                printf("P");

            } else {

                int printed = 0;

                for (int e = 0; e < ENEMY_COUNT; e++) {

                    if (i == enemyY[e] && j == enemyX[e]) {

                        printf("E");

                        printed = 1;

                        break;

                    }

                }

                if (!printed) {

                    printf("%c", maze[i][j]);

                }

            }

        }

        printf("\n");

    }

}


void moveEnemy(int e) {

    int dir = rand() % 4;

    int newX = enemyX[e], newY = enemyY[e];


    if (dir == 0) newY--;

    else if (dir == 1) newY++;

    else if (dir == 2) newX--;

    else if (dir == 3) newX++;


    if (maze[newY][newX] == ' ' || maze[newY][newX] == 'X') {

        enemyX[e] = newX;

        enemyY[e] = newY;

    }

}


int main() {

    srand(time(0));


    for (int e = 0; e < ENEMY_COUNT; e++) {

        enemyX[e] = rand() % (WIDTH-2) + 1;

        enemyY[e] = rand() % (HEIGHT-2) + 1;

        if (maze[enemyY[e]][enemyX[e]] != ' ') {

            e--;

        }

    }


    char move;

    while (1) {

        drawMaze();

        printf("Use W A S D to move. Reach 'X' to escape!\n");

        move = _getch();


        int newX = playerX, newY = playerY;

        if (move == 'w') newY--;

        else if (move == 's') newY++;

        else if (move == 'a') newX--;

        else if (move == 'd') newX++;


        if (maze[newY][newX] == ' ' || maze[newY][newX] == 'X') {

            playerX = newX;

            playerY = newY;

        }


        for (int e = 0; e < ENEMY_COUNT; e++) {

            moveEnemy(e);

            if (playerX == enemyX[e] && playerY == enemyY[e]) {

                system("cls");

                printf("💀 Oh no! Enemy caught you!\n");

                return 0;

            }

        }


        if (maze[playerY][playerX] == 'X') {

            system("cls");

            printf("🎉 Congratulations! You escaped the maze!\n");

            return 0;

        }

    }

}


🌟 Falling Stars Game (Slow Speed + Smooth) # 5


#include <stdio.h>

#include <conio.h>

#include <windows.h>

#include <stdlib.h>

#include <time.h>


#define WIDTH 30

#define HEIGHT 15


int playerX = WIDTH/2;

int starX, starY;

int score = 0;


// कर्सर को ऊपर ले जाने का फ़ंक्शन

void gotoxy(int x, int y) {

    COORD coord;

    coord.X = x;

    coord.Y = y;

    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}


void drawGame() {

    gotoxy(0,0); // स्क्रीन साफ़ नहीं करेंगे, बस कर्सर ऊपर ले जाएँगे

    for (int i = 0; i < HEIGHT; i++) {

        for (int j = 0; j < WIDTH; j++) {

            if (i == HEIGHT-1 && j == playerX) {

                printf("P"); // Player

            } else if (i == starY && j == starX) {

                printf("*"); // Falling Star

            } else {

                printf(" ");

            }

        }

        printf("\n");

    }

    printf("Score: %d\n", score);

}


int main() {

    srand(time(0));

    starX = rand() % WIDTH;

    starY = 0;


    char move;

    system("cls"); // शुरुआत में साफ़ करेंगे

    while (1) {

        drawGame();


        if (_kbhit()) {

            move = _getch();

            if (move == 'a' && playerX > 0) playerX--;

            else if (move == 'd' && playerX < WIDTH-1) playerX++;

        }


        starY++;

        if (starY == HEIGHT-1) {

            if (starX == playerX) {

                score++;

                gotoxy(0, HEIGHT+2);

                printf("⭐ You caught a star!\n");

            } else {

                gotoxy(0, HEIGHT+2);

                printf("💀 Missed the star!\n");

            }

            starX = rand() % WIDTH;

            starY = 0;

            Sleep(800); // नया स्टार आने से पहले लंबा इंतज़ार

        }

        Sleep(400); // गिरने की स्पीड धीमी कर दी

    }

    return 0;

}





















 
 



 









 




















3 comments:

IT

Course Details

                                                                                                         Approved By Govt. of Rajasthan    S...