函数传出参数,用指针作为函数的传出参数实现多值返回

指针作为参数的实际意义中,最重要定的是可以实现多个“返回值”

通过指针作为函数的传出参数可以实现函数的多值返回

例如

求阶乘的例子

#include<stdio.h>

int Factorial(int input1)     //计算传入参数input的阶乘
{
        int result = 1;
        int j;
        if(input1 < 0)
        {
              printf("错误输入/n");
              return -1;
        }
       if(0 == input1)
        return result; 
        else
            for(j = 1;j <= input1;j++)
           {
                   result = result * j;
           }
         return result;
}

int FactorialSum(int input2)       //计算0!+1!+2!+...n!
{
           int i;
           int sum = 0;
           if(input2 < 0)
           return -1;
           else
            for(i = 0; i <= input2;i++)
           {
                 sum += Factorial(i);
          }
        return sum;
}

int Factorial2(int input3,int *sum) //使用传出参数,实现多值返回
{
           int result;
           int j;
           *sum = 0;
            result = Factorial(input3);
           for(j = 0;j <= input3;j++)
           {
                *sum += Factorial(j);
           }
      return result;
}

int main()
{
         int input;                //要输入的数据
         int result;      //单个数阶乘的结果
         int sum;                  //从0!到n!的和的结果

         printf("Please input the number: ");
         scanf("%d",&input);
         result = Factorial(input);
         printf("The Factorial of %d is %d/n",input,result);
         sum = FactorialSum(input);
         printf("The Facorial Sum from 0 to %d is: %d/n",input,sum);
         result = Factorial2(input,&sum);
         printf("The Facorial Sum from 0 to %d is: %d/n",input,sum);

         getchar();
         getchar();
         return 0;
}
 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值