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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM