im doing a project regarding the use of structs and pointers to manage some stuff in a car wash, and i have to count up the time it takes for the given queue to finish washing, so to speak, where "almindelig"(Regular) and luksus (luxurious), each taking respectively 10 and 20 mins. This is my program currently, and where i made my "counting" function, the output i get is an undefined integer.
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
//Jeg laver to structs her, en for bil, der indeholder nummerplade, maerke og type af bil
struct bil
{
char *Nummerplade;
char *Maerke;
char *Type;
};
//Det andet er for koen, hvorved der bliver lavet et array med pointere *bi[100] hvorved dataen der bliver indtastet bliver opbevaret i
struct koe
{
struct bil *bi[100];
int antal;
};
//Her bruger jeg en funktion fra programmet Koe3.c fra forelæsning, som jeg har
// omskrevet således at det fungerer til mit program, hvor jeg bruger struct bil
void ind(struct koe *k,char *N,char *M, char *T)
{
int antalelementer=k->antal;
struct bil *b;
b=malloc(sizeof(struct bil));
b->Nummerplade=N;
b->Maerke=M;
b->Type=T;
k->bi[antalelementer]=b;
k->antal++;
}
//Her er det en simpel printf funktion, der tager udgangspunkt i struct bil b, hvorved der vil være data der er indlæst i
void udskrivpunkt(struct bil b)
{
printf("(%s, %s, %s)\n",b.Nummerplade,b.Maerke, b.Type);
}
//Jeg bruger en omskrevet version af Koe3.c fra forelæsning, hvor jeg har omskrevet den til at kunne bruge struct bil i stedet
void udskrivkoe(struct koe k)
{
int i;
for(i=0;i<k.antal;i++)
udskrivpunkt(*(k.bi[i]));
printf("\n");
}
//Jeg bruger en omskrevet version af koe3.c fra forelæsningen.
struct bil ud(struct koe *k)
{
k->antal--;
struct bil element=*(k->bi[0]);
int i;
free(k->bi[0]);
for (i=0;i<k->antal;i++)
k->bi[i]=k->bi[i+1];
return element;
}
//Her laver jeg et simpelt for loop, der bruger struct koe k til at gennemløbe arrayet, hvorved der er indlæst data om bilerne, og den returnerer k
//som er antallet af elementer i arrayet, jeg kan derfor kalde på den senere i programmet,
//for at finde ud af hvor mange elementer der er indlæst med struct koe k i arrayet.
int totalkoe(struct koe k)
{
int i;
for(i=0;i<k.antal;i++)
return(k.antal);
}
int totaltid(struct koe k)
{
struct bil b;
int i,counter1, counter2, sum;
for(i=0;i<k.antal;i++)
if(b.Type="Almindelig")
counter1++;
else
counter2++;
sum=10*counter1+20*counter2;
return(sum);
}
//I min main funktion kalder jeg blot på de funktioner og structs jeg har defineret tidligere i programmet
int main(void) {
int n, i;
struct bil b;
struct koe k;
k.antal=0;
//Jeg kalder på min ind funktion, hvorved jeg kan indlæse noget data jeg indtaster i programmet, og som der bliver gemt i arrayet bi[100]
printf("\nOpgave 1: Registrerer biler der ankommer i koeen\n\n");
printf("Alle biler i koeen:\n");
ind(&k,"AV96888","VW","Almindelig");
ind(&k,"KD65656","Audi", "Luksus");
ind(&k, "AX21878", "Ford", "Almindelig");
ind(&k, "CN32323", "VW", "Almindelig");
ind(&k, "NB21214", "Ford", "Luksus");
ind(&k, "UM21878", "Ford", "Almindelig");
ind(&k, "AV54361", "Tesla", "Almindelig");
udskrivkoe(k);
printf("\nOpgave 2: Udtage den første bil i koeen\n\n");
printf("Den foerste bil bliver nu vasket og fjernes fra koeen:\n");
b=ud(&k);
udskrivkoe(k);
printf("\nOpgave 3: Få information om hvor mange biler der er i koeen\n");
printf("\nDer er %d biler i koe\n\n",totalkoe(k));
printf("%d",totaltid(k));
return 0;
}
Where the part of the code im having a hard time troubleshooting is this part:
int totaltid(struct koe k)
{
struct bil b;
int i,counter1, counter2, sum;
for(i=0;i<k.antal;i++)
if(b.Type="Almindelig")
counter1++;
else
counter2++;
sum=10*counter1+20*counter2;
return(sum);
}
Where the output comes out as undefined integer.
Im sorry for the long block of text, but i thought you needed the whole program to better understand / help. Any input is appreciated.