c++ 分离整数小数部分菜鸟问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 07:57:24
#include <iostream>
using namespace std;
void splitfloat(float x, int *intpart, float *fracpart)
{
*intpart=int(x);
*fracpart=x-*intpart;
}
int main()
{
int i, n;
float x, f;
cout<<"Enter three(3) floating point numbers" << endl;
for (i = 0; i < 3; i++)
{
cin >> x;
splitfloat(x,&n,&f);
cout<<"Integer Part is "<< n <<" Fraction Part is "<<f<<endl;
}
}

这个是用指针实现的

为什么不可以用任意变量 a,b分别代表*intpart 和*fracpart 后面的&n和&f直接改成实参n和f?

可能是无返回值的问题

如何实现不用指针做形参调用函数实现分离?
返回值那块怎么弄啊~~
急!!~~!!~!

用引用就ok了

#include <iostream>
using namespace std;
void splitfloat(float x, int &intpart, float &fracpart)
{
intpart=int(x);
fracpart=x-intpart;
}
int main()
{
int i, n;
float x, f;
cout<<"Enter three(3) floating point numbers" << endl;
for (i = 0; i < 3; i++)
{
cin >> x;
splitfloat(x,n,f);
cout<<"Integer Part is "<< n <<" Fraction Part is "<<f<<endl;
}
}

void splitfloat(float x, int intpart, float fracpart)
值传递
void splitfloat(float x, int *intpart, float *fracpart)
也是值传递,不过传的是地址
void splitfloat(float x, int &intpart, float &fracpart)
引用传递

使用第一种传递时,splitfloat(x,n,f); 仅仅是把n和f的值传过去,对n和f本身没有影响
使用第二种传递时,splitfloat(x,&n,&f);将n和f的地址传进去,可对 n和f进行修改
使用第三种传递时,splitfloat(x,n,f); 改变引用也可对n和f进行修改

第二个问题的话,参照一楼,定