私のポインタの機能を応答していないし、正しい値を返しません

Zahirulイスラム教Nahid:

私には、ユーザーの意志入力2配列交流プログラムを作成しようとポインタとユーザー定義関数を使用しています。しかし、それは本当に正しい答えを示していません。主な機能は、ユーザからの入力を取得し、それは電卓機能に送信します。どこでそれらの配列を合計します。そして、それは、main関数に合計値を返します。

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;
}

スリラクシュミkanthan:

それがNULLではないので、代わりにこれを行う終了* int型のためにstrlenを使用することはできません

#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である可変長配列を使用しているだけ

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=384705&siteId=1