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

स्ट्रिंग फॉर्मेट में अंश और हर में संख्याओं को दर्शाने के लिए C प्रोग्राम


समस्या

रनटाइम पर उपयोगकर्ता द्वारा दिए गए दो पूर्णांकों से भिन्न भाग ज्ञात करें और डायनामिक मेमोरी एलोकेशन का उपयोग करके अंश और हर को स्ट्रिंग फॉर्मेट में दर्शाएं।

समाधान

स्ट्रिंग फॉर्मेट में अंश और हर को दर्शाने का समाधान निम्नलिखित है:

उदाहरण -

  • इनपुट नीचे दिया गया है:
Numerator1 = 3 Denominator2 = 2 numerator2 = 4 denominator2 = 7
  • आउटपुट निम्नलिखित है:
Fractional part1: 1.5 Fractional part2: 0.(571428)

उदाहरण

निम्नलिखित C प्रोग्राम अंश और हर को स्ट्रिंग फॉर्मेट में दर्शाने के लिए है:

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> char* fractionToDecimal(int numerator, int denominator) {    char *p;    int psz, n, *dec, dsz, x;    long long num, den, k, f;    int i, repeat_at;    int neg = 0;    psz = dsz = 100; n = x = 0;    p = malloc(psz * sizeof(char));    //assert(p);    neg = ((numerator > 0 && denominator < 0) ||    (numerator < 0 && denominator > 0)) ? 1 : 0;    num = numerator;    den = denominator;    num = (num < 0) ? -num : num;    den = (den < 0) ? -den : den;    k = num / den;    f = num % den;    if (neg && (k || f)) p[n ++] = '-';       n += sprintf(&p[n], "%lld", k);    if (!f) {       p[n] = 0;       return p;    }    p[n ++] = '.';    dec = malloc(dsz * sizeof(int));    repeat_at = -1;    if (f < 0) f = -f;    while (f) {       for (i = 0; i < x; i += 2) {          if (dec[i] == f) {             repeat_at = i;             goto done;          }       }       if (x + 1 >= dsz) {          dsz *= 2;          dec = realloc(dec, dsz * sizeof(int));       }       dec[x ++] = f;       f *= 10;       k = f / den;       dec[x ++] = k;       f = f % den;    }    done:    for (i = 0; i < x; i += 2) {       if (n + 3 > psz) {          psz *= 2;          p = realloc(p, psz * sizeof(char));       }       if (repeat_at == i) {          p[n ++] = '(';       }       p[n ++] = '0' + dec[i + 1];     }    if (repeat_at != -1) p[n ++] = ')';       p[n ++] = 0;    free(dec);    return p; } int main(void){    int n,d;    printf("enter numerator1 and denominator1:");    scanf("%d%d",&n,&d);    printf("n = %d, d = %d ", n, d);    printf("\nFractional part1: %s \n",fractionToDecimal(n, d));    printf("enter numerator2 and denominator2:");    scanf("%d%d",&n,&d);    printf("\nn = %d, d = %d ", n, d);    printf("\nFractional part2: %s\n ",fractionToDecimal(n, d));    return 0; }

आउटपुट

जब उपरोक्त प्रोग्राम निष्पादित होता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है:

enter numerator1 and denominator1:4 5 n = 4, d = 5 Fractional part1: 0.8 enter numerator2 and denominator2:5 9 n = 5, d = 9 Fractional part2: 0.(5)

  1. संख्याओं को स्पाइरल पैटर्न में प्रस्तुत करने का C प्रोग्राम संख्याओं को स्पाइरल पैटर्न में प्रस्तुत करने का C प्रोग्राम

    संख्याओं को स्पाइरल पैटर्न में प्रस्तुत करना नीचे दिखाया गया है: संख्याओं को स्पाइरल पैटर्न में प्रिंट करने के लिए लागू तर्क निम्नानुसार है: for(i = 1; i <= rows*2; i += 2){ if(k % 2 == 1){ printf(%3d %3d, i, i+1); k++; }else{ printf(%3d %3d, i+1, i);

  1. C प्रोग्राम: स्ट्रिंग्स के पॉइंटर्स की सरणी और उनके पते प्रिंट करें C प्रोग्राम: स्ट्रिंग्स के पॉइंटर्स की सरणी और उनके पते प्रिंट करें

    C प्रोग्रामिंग में पॉइंटर्स की सरणी (array of pointers) को समझते हैं, विशेष रूप से स्ट्रिंग्स के लिए। पॉइंटर्स की सरणी (स्ट्रिंग्स के लिए) यह एक सरणी है जिसके तत्व स्ट्रिंग के बेस पते को इंगित करने वाले पॉइंटर्स होते हैं। घोषणा और आरंभीकरण: char *a[] = {one, two, three}; यहाँ: a[0] one स्ट्रिं

  1. C प्रोग्राम में विषम लंबाई की स्ट्रिंग को  X  फॉर्मेट में प्रिंट करें C प्रोग्राम में विषम लंबाई की स्ट्रिंग को 'X' फॉर्मेट में प्रिंट करें

    समस्या विवरण एक स्ट्रिंग दी गई है, प्रोग्राम को स्ट्रिंग को X फॉर्मेट में प्रिंट करना होगा। संदर्भ के लिए नीचे दी गई छवि देखें। एल्गोरिदम शुरुआत चरण 1: void print(string str, int len) फंक्शन घोषित करें i = 0 से len-1 तक लूप j = len-1-i सेट करें k = 0 से len-1 तक लूप