c语言中利用函数同时返回两个数的和与差

c语言中利用函数同时返回两个数的和与差。

1、

#include <stdio.h>

void sum_diff(int n1, int n2, int sum, int diff)
{
    sum = n1 + n2;
    diff = (n1 > n2) ? (n1 - n2) : (n2 - n1);
}

int main(void)
{
    int na, nb, wa = 0, sa = 0;
    
    puts("please input two integers.");
    printf("na  = "); scanf("%d", &na);
    printf("nb  = "); scanf("%d", &nb);
    
    sum_diff(na, nb, wa, sa);  // 实参向形参的值传递过程为单向传递,  在调用函数中修改形参,不能改变实参。 ; 函数返回调用源的返回值只能有一个。
    
    printf("wa:  %d;   sa:  %d", wa, sa);
    
    return 0;
}

 

 

2、利用指针作为函数的参数。

#include <stdio.h>

int sum_dif(int n1, int n2, int *sum, int *dif)   //生成的指针sum、和dif分别为指向wa和sa的指针,*sum和*dif分别相当于wa和sa的别名,对别名进行修改,相当于对wa和sa进行修改。
{
    *sum = n1 + n2;
    *dif = (n1 > n2) ? (n1 - n2) : (n2 - n1);
}

int main(void)
{
    int na, nb, wa = 0, sa = 0;
    
    puts("please input two integers.");
    printf("na =  "); scanf("%d", &na);
    printf("nb =  "); scanf("%d", &nb);
    
    sum_dif(na, nb, &wa, &sa);  //指针作为实参传递给形参)
    
    printf("\nwa:  %d;  sa:   %d\n", wa, sa);
    
    return 0;        
}

 

posted @ 2021-05-29 09:12  小鲨鱼2018  阅读(937)  评论(0编辑  收藏  举报