4 svar
39 visningar
Didar 153
Postad: 20 sep 16:58

Fel meddelande i skapande hos Palindrome

Hej! Jag har fått följande felmeddelande och vet inte hur jag ska lösa det.   "implicit declaration of function 'isPalindrome' is invalid in C99" Är det för att jag inte har deklarerat isPalindrome innan main?

Hondel 714
Postad: 20 sep 18:24

Du måste deklarera din funktion isPalindrome innan main. Antingen kan du flytta koden för hela funktionen till innan main, eller så deklarerar du den bara som int isPalindrome(char inputString[]); och sedan har koden för hela funktionen under main. Tror det senare alternativet är att föredra

Hondel 714
Postad: 20 sep 18:26 Redigerad: 20 sep 18:26

Hör kan du läsa en relaterad fråga: https://www.pluggakuten.se/trad/inlamningsuppgift-programmering-1

 

Didar 153
Postad: 20 sep 22:20
Hondel skrev:

Du måste deklarera din funktion isPalindrome innan main. Antingen kan du flytta koden för hela funktionen till innan main, eller så deklarerar du den bara som int isPalindrome(char inputString[]); och sedan har koden för hela funktionen under main. Tror det senare alternativet är att föredra

Tack!

anders_k 39
Postad: 21 sep 13:01 Redigerad: 21 sep 13:02

Ett par saker:

När du ropar funktioner från main som är definierade efter main måste du
deklarera en prototyp ovanför main()

int minfunction();
int main() {... minFunction(); ...}
int minFunction() {...}

Använd inte gets, istället använd gets_s som tar max storleken på strängen eller fgets och ta bort \n
gets har ingen kontroll på hur stor strängen är som skickas in och kan därför användas för att göra
en hack attack på ditt program och/eller få det att krasha.

gets_s(inputString,SIZE);

Din funktion isPalindrom är inte rätt, den kollar bara mot sista bokstaven hela tiden, den skall
kolla första mot sista, andra mot nästsista osv.

if (inputString[i] == inputString[storlek-1]) // storlek - 1 är konstant

stoppa istället in i också på andra sidan

if (inputString[i] == inputString[storlek - i - 1])

du kan sluta att jämföra när du hittat mitten på strängen

Svara Avbryt
Close