如何用C语言编写这个程序?第3.0部分
编写一个名为readRect()的函数,该函数使用scanf()读取定义 矩形的位置。这些值是xmin、ymin、xmax、ymax顺序的整数。你的 函数应通过引用传递参数以返回这四个整数值。此外,您的功能是返回一个整数,该整数是成功扫描的值的数量,因此用户可以键入非数字项(如eod)以指示无数据(即,使用返回类型返回此值)。 我不明白如何创建函数readRect(),以便它通过引用传递参数如何用C语言编写这个程序?第3.0部分,c,pass-by-reference,scanf,C,Pass By Reference,Scanf,编写一个名为readRect()的函数,该函数使用scanf()读取定义 矩形的位置。这些值是xmin、ymin、xmax、ymax顺序的整数。你的 函数应通过引用传递参数以返回这四个整数值。此外,您的功能是返回一个整数,该整数是成功扫描的值的数量,因此用户可以键入非数字项(如eod)以指示无数据(即,使用返回类型返回此值)。 我不明白如何创建函数readRect(),以便它通过引用传递参数 int readRect (int w, int x, int y, int z){ retu
int readRect (int w, int x, int y, int z){
return scanf("%d%d%d%d\n",&w,&x,&y,&z);
}
int main (void){
int a,b,c,d;
printf(">>enter two rectangles:\n");
readRect(a,b,c,d);
return EXIT_SUCCESS;
}
您需要通过地址传递参数,也称为指针。因此,函数头将是:
int readRect ( int * w, int * x, int * y, int * z )
来自main
的调用将
readRect ( &a, &b, &c, &d );
重写为
int readRect (int *w, int *x, int *y, int *z)
{
return scanf("%d%d%d%d",w,x,y,z);
}
并从manin
as中调用它
readRect(&a, &b, &c, &d);
请注意,在C中,所有调用都是按值而不是按引用进行的当我只在main中使用readRect()一次时,为什么它在终止之前扫描8个值?@user2805620;Romove
\n
来自scanf
你能告诉我为什么吗?我不只是想知道这是你为了不扫描而做的。