return typ wyliczeniowy

0

Witam, czy funkcja ta która ma zwracać typ wyliczeniowy przedziałow jest dobrze napisana? (pomijając niedopracowane przedziały) dzieki

enum przedzial {ROZ, PRZEC,ZAWIE};

enum przedzial funkcja(float a1, float a2, float b1, float b2)
{
	scanf("%f %f %f %f", &a1, &a2, &b1, &b2);
	
	if(a2<b1)
	{
		return ROZ;
	}
	else if((a1<=b1)&& (a2>=b2)) 
	{
		return ZAWIE;
	}
	else if((a1<b1)&&(a2>b1))
	return PRZEC;
}
0

Udalo sie

#include <stdio.h>

enum przedzial {ROZ, PRZEC,ZAWIE};

int funkcja(float a1, float a2, float b1, float b2)
{
	if(a2<b1)
	{
		return ROZ;
	}
	else if((a1<b1)&& (a2>b2)) 
	{
		return PRZEC;
	}
	else if((a1<=b1)&&(a2>=b1))
	return ZAWIE;
}

int main()
{
	float x1,x2,y1,y2;
	scanf("%f %f %f %f", &x1, &x2, &y1, &y2);
	printf("\n\n\%d",funkcja(x1,x2,y1,y2));
	
	return 0;
}
0

To po co Ci ten enum skoro i tak zwracasz int?

0

Funkcja ma zwrócić wartość
zdefiniowanego typu wyliczeniowego, określającą wzajemne położenie tych przedziałów. Tak brzmi zadanie

0

Funkcja ma zwrócić wartość zdefiniowanego typu wyliczeniowego.

Ty zwracasz int.

0
UczenC napisał(a):

Witam, czy funkcja ta która ma zwracać typ wyliczeniowy przedziałow jest dobrze napisana? (pomijając niedopracowane przedziały) dzieki

enum przedzial {ROZ, PRZEC,ZAWIE};

przedzial funkcja(float a1, float a2, float b1, float b2)
{

0
UczenC napisał(a):
enum przedzial funkcja(float a1, float a2, float b1, float b2)
{
	scanf("%f %f %f %f", &a1, &a2, &b1, &b2);

To jest bezsensu! Wywal tego scanf i pobieraj dane poza funkcja, bo w końcu po to masz argumenty funkcja by nimi coś przekazywać, a nie po to by je ignorować/nadpisywać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1