#include <stdio.h> float summaa(float a, float b, int *); void main(void) { float luku1, luku2, tulos; printf("Anna luku 1 : "); scanf("%f",&luku1); printf("Anna luku 2: "); scanf("%f",&luku2); summaa(luku1, luku2, &tulos); printf("Lukujen summa on %f\n",tulos); } float summaa(float a, float b, int *o) { *o = a+b; }
Eli tuon funktion pitäisi muuttaa muuttujan "tulos" arvoa, mutta kun koitan kääntää sitä gcc:llä niin se herjaa warning: passing argument 3 of ‘summaa’ from incompatible pointer type
kääntää tuon kyllä mutta ohjelma antaa lukujen summaksi 0. Sanokaas nyt sitten missä on vika.
Eihän se ole int* vaan float*. Muuta siis funktiokin käyttämään float*:ta int*:n sijaan.
Noniin siinähän se. Olin pikkuaivoillani ymmärtänyt väärin tuon systeemin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.