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(" wa: %d; sa: %d ", wa, sa); return 0; }