#include<stdio.h>
#include<stdlib.h>
struct point
{
int x;
int y;
};
void get(struct point p)
{
printf("Enter the x and y coordinates of your point: ");
scanf("%d %d",&p.x,&p.y);
}
void put(struct point p)
{
printf("(x,y)=(%d,%d)\n",p.x,p.y);
}
int main ()
{
struct point pt;
get(pt);
put(pt);
return 0;
}
我正在尝试编写一个程序来获取用户的x和y坐标,然后将它们打印到屏幕上。一旦我输入x和y坐标并出去将它们打印到屏幕上,我得到:(x,y)=(56,0)。我不熟悉结构,所以任何帮助都会很好。谢谢。
答案 0 :(得分:2)
您也可以直接从get函数返回结构,因为这是一个小结构。
struct point get()
{
struct point p;
printf("Enter the x and y coordinates of your point: ");
scanf("%d %d",&p.x,&p.y);
return p;
}
int main ()
{
put(get());
return 0;
}
答案 1 :(得分:1)
void get(struct point *p)// get(&pt); call from main
{
printf("Enter the x and y coordinates of your point: ");
scanf("%d %d",&p->x,&p->y);
}
答案 2 :(得分:0)
你必须使用指针,否则get
函数中的点是main
函数中点的副本。
#include<stdio.h>
#include<stdlib.h>
typedef struct point
{
int x;
int y;
} Point;
void get(Point *p)
{
printf("Enter the x and y coordinates of your point: ");
scanf("%d %d",&p->x,&p->y);
}
void put(Point *p)
{
printf("(x,y)=(%d,%d)\n",p->x,p->y);
}
int main ()
{
Point pt;
get(&pt);
put(&pt);
return 0;
}