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

पॉइंटर्स का उपयोग करके C प्रोग्राम में ऐरे एलिमेंट को डिलीट करना

समस्या

एक C प्रोग्राम लिखें जो रनटाइम पर उपयोगकर्ता द्वारा ऐरे से एक एलिमेंट को डिलीट करे और डिलीशन के बाद परिणाम को स्क्रीन पर प्रदर्शित करे। यदि डिलीट किया जाने वाला एलिमेंट ऐरे में नहीं है, तो "Invalid Input" प्रदर्शित करें।

समाधान

एक ऐरे का उपयोग सामान्य एलिमेंट्स के समूह को एक नाम के तहत रखने के लिए किया जाता है।

ऐरे ऑपरेशन्स निम्नलिखित हैं:

  • इन्सर्ट (Insert)
  • डिलीट (Delete)
  • सर्च (Search)

एल्गोरिथ्म

पॉइंटर्स की सहायता से ऐरे में एलिमेंट्स को डिलीट करने का एल्गोरिथ्म:

  1. एलिमेंट्स की संख्या घोषित करें और पढ़ें।
  2. रनटाइम पर ऐरे का आकार घोषित करें और पढ़ें।
  3. ऐरे एलिमेंट्स इनपुट करें।
  4. एक पॉइंटर वेरिएबल घोषित करें।
  5. रनटाइम पर डायनामिक रूप से मेमोरी आवंटित करें।
  6. डिलीट किए जाने वाले एलिमेंट को दर्ज करें।
  7. डिलीशन के बाद, एलिमेंट्स को एक पोजीशन बाईं ओर शिफ्ट किया जाता है।

उदाहरण

ऐरे का आकार: 5

ऐरे एलिमेंट्स निम्नलिखित हैं:

1 2 3 4 5

डिलीट किए जाने वाले एलिमेंट की पोजीशन दर्ज करें: 4

आउटपुट निम्नलिखित है:

डिलीशन के बाद ऐरे एलिमेंट्स हैं: 1 2 3 5

C प्रोग्राम

पॉइंटर्स की सहायता से ऐरे में एलिमेंट्स को डिलीट करने का C प्रोग्राम:

#include <stdio.h>
#include <stdlib.h>

void delete(int n, int *a, int pos);

int main() {
    int *a, n, i, pos;
    printf("ऐरे का आकार दर्ज करें: ");
    scanf("%d", &n);
    a = (int*)malloc(sizeof(int) * n);
    printf("एलिमेंट्स दर्ज करें:\n");
    for(i = 0; i < n; i++) {
        scanf("%d", (a + i));
    }
    printf("डिलीट किए जाने वाले एलिमेंट की पोजीशन दर्ज करें: ");
    scanf("%d", &pos);
    delete(n, a, pos);
    return 0;
}

void delete(int n, int *a, int pos) {
    int i, j;
    if(pos <= n) {
        for(i = pos - 1; i < n; i++) {
            j = i + 1;
            *(a + i) = *(a + j);
        }
        printf("डिलीशन के बाद ऐरे एलिमेंट्स हैं:\n");
        for(i = 0; i < n - 1; i++) {
            printf("%d\n", (*(a + i)));
        }
    } else {
        printf("Invalid Input");
    }
}

आउटपुट

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

ऐरे का आकार दर्ज करें: 5
एलिमेंट्स दर्ज करें: 12 34 56 67 78
डिलीट किए जाने वाले एलिमेंट की पोजीशन दर्ज करें: 4
डिलीशन के बाद ऐरे एलिमेंट्स हैं: 12 34 56 78
  1. C भाषा में पॉइंटर्स का उपयोग करके ऐरे एलिमेंट्स का योग कैसे निकालें? C भाषा में पॉइंटर्स का उपयोग करके ऐरे एलिमेंट्स का योग कैसे निकालें?

    पॉइंटर क्या है? पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल का पता स्टोर करता है। निम्नलिखित स्टेटमेंट पर विचार करें: int qty = 179; पॉइंटर घोषित करना पॉइंटर घोषित करने का सिंटैक्स निम्नलिखित है: int *p; यहां, p एक पॉइंटर वेरिएबल है जो दूसरे वेरिएबल का पता रखता है। पॉइंटर का इनिशियलाइज़ेशन एड्रेस ऑपरेटर

  1. - C# में सरणी तत्वों को अवरोही क्रम में व्यवस्थित करना

    किसी अनुक्रम में तत्वों को अवरोही क्रम में व्यवस्थित करने के लिए ThenBy() और OrderByDescending का उपयोग करें। उदाहरण यह हमारी स्ट्रिंग सरणी है: string[] myStr = { Keyboard, Laptop, Mouse, Monitor }; अब OrderByDescending का उपयोग करके तत्वों को अवरोही क्रम में व्यवस्थित करें। इसमें प्रत्येक स्ट्रिंग

  1. - C# एरे से एलिमेंट डिलीट/रिमूव कैसे करें

    C# एरे से एलिमेंट हटाना C# में एरे फिक्स्ड साइज़ के होते हैं; एक बार बनने के बाद उनका आकार नहीं बदल सकता। डिलीट करने के लिए आपको: निर्दिष्ट इंडेक्स के बाद के एलिमेंट्स को एक स्थान बाएं शिफ्ट करना होगा। लॉजिकल साइज़ कम करना होगा (या नया छोटा एरे बनाना)। शिफ्टिंग एल्गोरिदम // pos = डिलीट करने की पो