Cześć
Muszę wykorzystać enum przy wyborze przez użytkownika sortowania tabeli w sposób rosnący i malejący.
Sam projekt składa się oprócz main.c jeszcze z header-a i pliku .c opisującego pewne funkcje z danego header-a.
Tak więc zadeklarowałem enum-a w headerze:
#ifndef sort
#define sort
int bubble_sort_asc(int tab[], int size);
int bubble_sort_desc(int tab[], int size);
int bubble_sort(int tab[], int size, enum direction dir);
#endif
enum direction {ASCENDING=1,DESCENDING=2};
, a tutaj kod z pliku main.c
#include <stdio.h>
#include <stdlib.h>
#include "vector_utils.h"
#include "sort.h"
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[])
{
int stop_value=0;
int vec1[50]={0};
int size=50;
int newsize;
int temp=0;
//printf("Twoj pierwszy dzialajacy projekt.\n Wprowadz dane swojej tablicy\n UWAGA! Pamietaj, ze tablica zakonczy wczytywanie danych przy wprowadzeniu zera!\n");
printf("Podaj wektor:\n");
newsize=read_vector(vec1,size,stop_value);
if(newsize==-2)
{
printf("Incorrect input");
return 1;
}
if(newsize==-1 && vec1[0]==0)
{
printf("Not enough data available");
return 3;
}
printf("Podaj kierunek:");
enum direction wybor;
if(scanf("%d",&wybor)!=1)
{
printf("Incorrect input");
return 1;
}
if(wybor==ASCENDING)
{
}
else if(wybor==DESCENDING)
{
}
else
{
printf("Incorrect input data");
return 2;
}
bubble_sort(vec1,newsize,direction wybor);
//display_vector(vec1,newsize);
return 0;
}
Niestety, przy próbie wywołania funkcji pojawia mi się komunikat o tym, ze enum nie zostało zadeklarowane. Co zrobiłem źle? Wcześniej np. Incorrect input data wyświetla się poprawnie dla złych danych. :/
EDIT
Obecnie przy takim zastosowaniu dla header-a:
#ifndef sort
#define sort
typedef enum{
ASCENDING=1,DESCENDING=2
}direction;
#endif
int bubble_sort_asc(int tab[], int size);
int bubble_sort_desc(int tab[], int size);
int bubble_sort(int tab[], int size, enum direction dir);
W mian-ie wyświetla mi się komunikat:"storage size of wybor isn't know". Bardzo proszę o pomoc, to ważne bym mógł popchnąć to zadanie do przodu. :/