Just nu i M3-nätverket
Jump to content

Applicera loop i if-sats?


Tobbz

Recommended Posts

Håller på med ett litet project som skall kolla om ett ord är en palindrom (ord som är lika från båda håll, t.ex. naturrutan) eller inte, detta skall göras genom listor, men för att får en någolunda hyfsad kontrollering behöver jag in if-sats med en loop.. Ngn som har koll på hur man gör?

 

Link to comment
Share on other sites

Vet inte varför du vill använda en loop, det här är ju ett givet fall där en rekursiv funktion löser problemet. Vet dock inte om detta är ngt ni berört ännu.

 

Link to comment
Share on other sites

#include <stdio.h>

#include <string.h>

int main(int argc,char **argv) {

char *s=argv[1],*p1=s,*p2=s+(strlen(s)-1);

while(p2>=p1 && *p1==*p2) p1++,p2--;

if(p1==p2 || (p2-p1)<1)

fprintf(stderr,"palindrom found..");

}

 

Link to comment
Share on other sites

Rekursiva funktioner är inget vi har berört i kursen, och min handledare vidhåller att jag skall ha en loop i if satsen eftersom att jag måste jämföra bokstav för bokstav för att if satsen skall gå igenom, ngn koll på hur man får in loopen?

 

Link to comment
Share on other sites

Hur skulle du använda rekursiv funktion för att lösa detta ?

Ser inte självklarthete i det, lite nyfiken bara...

Ok, självklart kanske det inte är, det är ju en ganska enkel uppgift och löses lika lätt iterativt, men lämnar ett exempel i lördagspseudo-kod =)

 

Function OppositesMatch(List,StartIndex,EndIndex)
...FoundMatch=(List[startIndex] EQ List[EndIndex])
...If (StartIndex >= EndIndex-1)
.......Return (FoundMatch)
...Else
.......Return (OppositesMatch(List,StartIndex+1,StartIndex-1)
End Function

 

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...