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

int calculator(int *my_array1, int *my_array2)
{
    int sum=0,sum1=0,sum2=0;
    for (int i = 0; i < strlen(my_array1); i++)
    {
        sum1+=(*(my_array1+i));
    }
    for (int i = 0; i < strlen(my_array2); i++)
    {
        sum2+=(*(my_array1+i));
    }
    sum=sum1+sum2;
    return sum;
}

int main()
{
    int size1,size2,i;
    printf("Enter First Array Size: ");
    scanf("%d",&size1);
    int array1[size1];
    printf("Enter Array's Value: ");
    for(i=0; i<size1; i++)
    {
        scanf("%d",&array1[i]);
    }
    printf("Enter Second Array Size: ");
    scanf("%d",&size2);
    int array2[size2];
    printf("Enter Array's Value: ");
    for(i=0; i<size2; i++)
    {
        scanf("%d",&array2[i]);
    }
    printf("\nSum: %d",calculator(array1,array2));
    return 0;
}

c
-2
Zahirul Islam Nahid 1 अप्रैल 2020, 17:43

1 उत्तर

सबसे बढ़िया उत्तर

आप int* के लिए strlen का उपयोग नहीं कर सकते क्योंकि यह NULL टर्मिनेटेड नहीं है इसके बजाय ऐसा करें

#include<stdio.h>


int calculator(int *my_array1, int *my_array2,int len1,int len2)
{
    int sum=0,sum1=0,sum2=0;
    for (int i = 0; i < len1; i++)
    {
        sum1+=(*(my_array1+i));
    }
    for (int i = 0; i < len2; i++)
    {
        sum2+=(*(my_array1+i));
    }
    sum=sum1+sum2;
    return sum;
}

int main()
{
    int size1,size2,i;
    printf("Enter First Array Size: ");
    scanf("%d",&size1);
    int array1[size1];
    printf("Enter Array's Value: ");
    for(i=0; i<size1; i++)
    {
        scanf("%d",&array1[i]);
    }
    printf("Enter Second Array Size: ");
    scanf("%d",&size2);
    int array2[size2];
    printf("Enter Array's Value: ");
    for(i=0; i<size2; i++)
    {
        scanf("%d",&array2[i]);
    }
    printf("\nSum: %d",calculator(array1,array2,size1,size2));
    return 0;
}

नोट: आप चर लंबाई सरणियों का उपयोग कर रहे हैं यह केवल c99 में है

1
srilakshmikanthanp 1 अप्रैल 2020, 14:56