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