David Bahr wrote:
> Hej!
>
> Vi er begyndt at have få undervisning i C programmering på min uddannelse og
> jeg er stødt på en opgave jeg ikke kan finde ud af, hvor jeg gør hvad galt
> henne.
>
> Opgaven går ud på at skrive en funktion der beregner kvadratroden af et tal
> x.
> Bogen siger også, at man kan inkludere <math.h> fordi sqrt() funktionens
> protoype er angivet deri.
>
> Mit program ser således ud:
>
> #include <math.h>
> #include <stdio.h>
>
> void square(double x); /* Function prototype */
>
> int main(void)
> {
> int i;
>
> printf("Enter a non-negative integer: ");
> scanf("%lf", &i);
>
> square(i); /* Pass i to square function */
> return 0;
> }
>
> void square(double x)
> {
> printf("The square of %lf is %lf",
> x, sqrt(x)); /* Prints out the square of user input */
>
> }
>
> Håber ikke jeg har stillet et alt for dumt spørgsmål, men jeg har ikke
> rigtig kunne hitte ud af, hvad jeg har gjort galt.
>
> Mvh
>
> David
Jeg har lige skimtet din kode og har flg. kommentar:
Din i-variabel er deklareret som en integer. Men din scanf-funktion
forudsætter den er en type lf (= double/long float). Og din
square-funktion tager en double som argument. Så du skal deklarere i som
double.
Best regards / Med venlig hilsen
Martin Jørgensen
--
---------------------------------------------------------------------------
Home of Martin Jørgensen -
http://www.martinjoergensen.dk