Terve.
Voisiko joku kommentoida nämä koodin pätkät tai siis kertoa että mitä milläkin rivillä tapahtuu kun mulle ei tuo funktioiden käyttö oikein aukene?.
/* Ohjelma laskee funktiota käyttämällä */ /* vastuksen ja tehon, kun jännite ja */ /* virta annetaan funktiolle arvopara- */ /* metreina. Lasketut vastus ja teho */ /* välitetään pääfunktiolle muuttuja- */ /* parametrien kautta */ #include <stdio.h> void laske_vastus_teho(float u, float i, float *r, float *p); void main(void) { float jannite,virta,vastus,teho; jannite = 16.5; virta = 4.5; laske_vastus_teho(jannite,virta,&vastus,&teho); printf("\nVastus = %8.2f ohmia",vastus); printf("\nTeho = %8.2f wattia", teho); } void laske_vastus_teho(float u,float i,float *r,float *p) { *r = u/i; *p = u*i; }
Toimiikohan tämä? Ei ole sen näköinen. En uskalla kommentoida, jos se ei ole toimivaa koodia.
Juu toimii tuo. Laittaa vain getch(); tuohon printf:n alle niin näkyy tuloksetkin.
Kooditagit!!
#include <stdio.h> void laske_vastus_teho(float u, float i, float *r, float *p); /* funktion prototyyppi */ void main(void) { float jannite,virta,vastus,teho; jannite = 16.5; virta = 4.5; /* annetaan funktiolle parametriksi jannite ja virta perus-flotareina, ja vastus ja teho osoittimina */ laske_vastus_teho(jannite,virta,&vastus,&teho); printf("\nVastus = %8.2f ohmia",vastus); printf("\nTeho = %8.2f wattia", teho); } void laske_vastus_teho(float u,float i,float *r,float *p) { /* lasketaan u/i ja u*i ja tökitään nämä "paluuarvot" osoittimien osoittamiin muistipaikkoihin */ *r = u/i; *p = u*i; }
edit: Laaksonen, jos luet tämän niin kooditagi bugaa.
Nyt kooditagin bugin #572 pitäisi olla korjattu...
Antakaa nyt anteeksi offtopikkini, mutta oliko kyseessä oikeasti 572. bugi kooditageissa?
No 572 on (onneksi) kuvaannollinen ilmaus, oikeasti kooditagia on täytynyt paikata "vain" kymmenkunta kertaa.
Elikkäs meneekö näiden
lainaus:
*r = u/i;
*p = u*i;
sisältöoperaattoreiden arvot
tänne
laske_vastus_teho(jannite,virta,
lainaus:
&vastus,&teho
); osoitinoperaattoreiden viittaamiin muuttujiin?
Ja sen jälkeen tässä
lainaus:
printf("\nVastus = %8.2f ohmia",vastus);
printf("\nTeho = %8.2f wattia", teho);
vastus ja tehon on &vastus ja &teho sisältö??
Taisi tulla "hiukan" sekava kysymys, mutta kun ei tahdo upota tyhmään päähän.
Aihe on jo aika vanha, joten et voi enää vastata siihen.