ANCIFresh Ответов: 1

Как создать функцию печати для структуры?


Я пытаюсь сделать функцию печати для структуры, но встречаю errow, которого раньше не видел
это моя треска:


   #include<stdio.h>
   struct point{
	int x;
	int y;
   }p;
   
    int main()
   {
        struct point scan(struct point *p);
	void print(struct point *p);
	
		
	scan(&p);
	print(&p);
	
	 
	
	return 0;
}
     struct point scan(struct point *p)
{
	scanf("%d%d",p->x,p->y); 
}

      void print(struct point *p)
{
	printf("%d%d",p->x,p->y);
}


Что я уже пробовал:

Я искал в google, но ничего не нашел.
Кстати, если вы считаете мой вопрос глупым, пожалуйста, порекомендуйте мне какую-нибудь книгу, я буду вам очень признателен.

Michael_Davies

Какая строка выдает ошибку и что говорится в сообщении об ошибке?

Определения должны быть вне функций, поэтому

структура развертки(точка структуры *п);
void print(struct point *p);

Не должно быть внутри главного.

1 Ответов

Рейтинг:
2

OriginalGriff

Вы не можете объявить прототипы функций внутри тела функции. Переместите эти строки выше определения main:

struct point scan(struct point *p);
	void print(struct point *p);


И сделайте себе одолжение, не используйте односимвольные имена: используйте "правильные" имена, и ваш код станет намного легче читать.
#include<stdio.h>
struct point
   {
   int x;
   int y;
   } myPoint;

struct point scan(struct point *p);
void print(struct point *p);
   
int main()
   {
   scan(&myPoint);
   print(&myPoint);
   return 0;
   }
   
struct point scan(struct point *p)
   {
   scanf("%d%d",p->x,p->y); 
   }
void print(struct point *p)
   {
   printf("%d%d",p->x,p->y);
   }