2016-11-08 13 views
-1

次のコードでは、関数avg(int i,int j,int k,int *pint,double *pfloat)は平均を計算してi,j,kとなり、結果の整数部分と浮動部分を個別に返します。たとえば、average = 22.45の場合、22と0.45が返されます。ここC言語の関数が複数の値を返すことはできますか?

コードは次のとおり

#include <stdio.h> 
#include <stdlib.h> 
#include <ctype.h> 
#include <math.h> 

void avg(int i,int j,int k,int *pint,double *pfloat) 
{ 
    double average=(i+j+k)/3; 
    *pfloat=average-(floor(average)); 
    *pint=floor(average); 
} 

int main() 
{ 
    int Integer=0; 
    double rem=0; 
    avg(2,4,5,&Integer,&rem); 
    printf("%d\n%lf",Integer,rem); 
    return 0; 
} 

出力3および0理由は?

答えて

1
double average=(i+j+k)/3; 

これは整数除算です。便利な浮動小数点数を得るには、 "。" (浮動小数点除算を行う)浮動小数点定数とすると、次のような定数になります。

+0

私は整数分裂 –

関連する問題