4 svar
73 visningar
Didar 212
Postad: 20 sep 2022 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 1388
Postad: 20 sep 2022 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 1388
Postad: 20 sep 2022 18:26 Redigerad: 20 sep 2022 18:26

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

 

Didar 212
Postad: 20 sep 2022 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 237
Postad: 21 sep 2022 13:01 Redigerad: 21 sep 2022 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
Close