怎么返回值

来源:百度知道 编辑:UC知道 时间:2024/06/18 15:55:48
#include "iostream"
using namespace std;
void cbline(int a,int b,int c,int d);
void main()
{

int a,b,c,d;
cin>>a>>b>>c>>d;

cbline(a,b,c,d);

}
void cbline(int a,int b,int c,int d)//a=起点x坐标,b=终点x坐标,c=起点y坐标,d=终点y坐标
{
int Fm=0;
int m=0;
int n;

if(b>=a&&d>=c)//第一象限 a=起点x坐标,b=终点x坐标,c=起点y坐标,d=终点y坐标
{
int x=0;
int y=0;
b=b-a;
d=d-c;
n=(b-a)+(d-c);
x=a;
y=c;
while(m<n)
{
if(Fm>=0)
{
m=m+1;
Fm=Fm-d;
x=x+1;
;//怎么在这里返回xy的值
}
else
{
m=m+1;
Fm=Fm+b;
y=y+1;
;//怎么在这里返回xy的值
}
}
}
这是程序的一部分 我想问下 怎么返回每个变化的xy的值

使用引用更简单, 改动更少, 主要是cbline函数添加引用参数, 全部改动如下:
int a,b,c,d; 改为 int a,b,c,d ,x, y;

cbline(a,b,c,d); 改为 cbline(a,b,c,d,x,y);

void cbline(int a,int b,int c,int d)改为
void cbline(int a,int b,int c,int d, int &X, int &Y)

在 //怎么在这里返回xy的值 的下面添加
X = x;
Y = y;

这样之后, X 就是返回的 x 的值, Y就是返回的 y 的值

void cbline(int a,int b,int c,int d, int *X, int *Y);
void main()
{

int a,b,c,d, X, Y;
cin>>a>>b>>c>>d;

cbline(a,b,c,d, &X, &Y);

}
void cbline(int a,int b,int c,int d, int *X, int *Y)//a=起点x坐标,b=终点x坐标,c=起点y坐标,d=终点y坐标
{
int Fm=0;
int m=0;
int n;

if(b>=a&&d>=c)//第一象限 a=起点x坐标,b=终点x坐标,c=起点y坐标,d=终点y坐标
{
int x=0;
int y=0;
b=b-a;
d=d-c;
n=(b-a)+(d-c);
x=a;
y=c;
while(m<n)
{
if(Fm>=0)
{
m=m+1;
Fm=Fm-d;