在C中向main返回多个值

在C中向main返回多个值,c,C,是否可以将多个值返回到main。例如,如果我有这个完美数问题。是否有可能将完美数字返回到main并从那里打印出来 #include<stdio.h> void perfect(int*,int); int main() { int i,arr[10]; for(i=0;i<=10;i++) { printf("Enter range"); scanf("%d",&a

是否可以将多个值返回到main。例如,如果我有这个完美数问题。是否有可能将完美数字返回到main并从那里打印出来

    #include<stdio.h>
    void perfect(int*,int);
    int main()
    {
        int i,arr[10];

        for(i=0;i<=10;i++)
        {
        printf("Enter range");
        scanf("%d",&arr[i]);
        }
        perfect(arr,10);
        return 0;
    }

    void perfect(int *ptr,int size)
    {
        int i=0,j=0,sum=0,res=0;
        for(i=0;i<size;i++)
        {
            sum=0;
            for(j=1;j<=*ptr/2;j++)
            {
                if(*ptr%j==0)
                {
                sum=sum+j;
                }
            }

            if(sum==*ptr)
            {
                printf("%d is perfect",*ptr);

            }
            ptr++;
     }

   }
#包括
完全无效(int*,int);
int main()
{
int i,arr[10];

对于(i=0;i是的,这确实已经发生了

arr
衰减为指针类型,指针类型通过值传递给
perfect

您可以通过函数
perfect
中的
ptr
上的指针算法修改
arr


考虑使用
size\u t
作为
size
参数的类型;它用于存储数组的大小。在调用站点,您可以使用
sizeof(arr)/sizeof(arr[0])
用于生成大小的习惯用法。不要忘记在函数中使用该参数值,而不是硬编码数字10。

是的,这确实已经发生了

arr
衰减为指针类型,指针类型通过值传递给
perfect

您可以通过函数
perfect
中的
ptr
上的指针算法修改
arr


考虑使用
size\u t
作为
size
参数的类型;它用于存储数组的大小。在调用站点,您可以使用
sizeof(arr)/sizeof(arr[0])
用于生成大小的习惯用法。不要忘记在函数中使用该参数值,而不是对数字10进行硬编码。

如果不使用,将大小传递给
perfect
的意义何在?
for(i=0;i<10;i++)
应该是
for(i=0;i
@muXXmit2X:这是一个输入错误,如果不使用它,将大小传递到
perfect
的意义何在?
for(i=0;i<10;i++)
应该是
for(i=0;i
@muXXmit2X:那是一个输入错误我没有完全理解你的答案…如果可能的话,请你用编程的方式给我看一下好吗!!?我没有完全理解你的答案…如果可能的话,请你用编程的方式给我看一下好吗!!?