/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
sqrt() funktion
Fra : David Bahr


Dato : 09-04-06 14:52

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


 
 
Kent Friis (09-04-2006)
Kommentar
Fra : Kent Friis


Dato : 09-04-06 14:56

Den Sun, 09 Apr 2006 15:52:21 +0200 skrev David Bahr:
> 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.

Hvad er problemet?

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

David Bahr (09-04-2006)
Kommentar
Fra : David Bahr


Dato : 09-04-06 15:03

Kent Friis wrote:

> Den Sun, 09 Apr 2006 15:52:21 +0200 skrev David Bahr:
>> 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.
>
> Hvad er problemet?
>
> Mvh
> Kent

Ups ja det fik jeg da vist glemt at få med.

Fejlen ser således ud:

gcc exc2s163.c
/tmp/ccaA3Dvu.o: In function `square':
exc2s163.c:(.text+0x80): undefined reference to `sqrt'
collect2: ld returned 1 exit status





Kent Friis (09-04-2006)
Kommentar
Fra : Kent Friis


Dato : 09-04-06 15:04

Den Sun, 09 Apr 2006 16:02:48 +0200 skrev David Bahr:
>
> Fejlen ser således ud:
>
> gcc exc2s163.c
> /tmp/ccaA3Dvu.o: In function `square':
> exc2s163.c:(.text+0x80): undefined reference to `sqrt'
> collect2: ld returned 1 exit status

gcc -lm exc2s163.c

-l betyder at du lige vil have et library med. Og m betyder det er
libm, som er math library.

Mvh
Kent
--
Hard work may pay off in the long run, but laziness pays off right now.

David Bahr (09-04-2006)
Kommentar
Fra : David Bahr


Dato : 09-04-06 15:06

Kent Friis wrote:

> Den Sun, 09 Apr 2006 16:02:48 +0200 skrev David Bahr:
>>
>> Fejlen ser således ud:
>>
>> gcc exc2s163.c
>> /tmp/ccaA3Dvu.o: In function `square':
>> exc2s163.c:(.text+0x80): undefined reference to `sqrt'
>> collect2: ld returned 1 exit status
>
> gcc -lm exc2s163.c
>
> -l betyder at du lige vil have et library med. Og m betyder det er
> libm, som er math library.
>
> Mvh
> Kent
Tusind tak. Det ser vist ud til at jeg skal have læst manualen for gcc
igennem.

Tak skal du have.


Martin Jørgensen (09-04-2006)
Kommentar
Fra : Martin Jørgensen


Dato : 09-04-06 23:23

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

Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste