Hogyan irhatnám meg ezt a C feladatot ?
Írd meg azoknak a függvényeknek a deklarációját és definícióját, amelyek visszatérítik
egy paraméterként kapott valós elemeket tartalmazó tömb elemeinek összegét,
szorzatát, átlagát (külön függvények).
Ez pedig a kódom :
#include <stdio.h>
#include <stdlib.h>
int osszeg(int n, int i , float v[10])
{
float sum=0;
for (i=1;i<=n; i++)
{
sum+= v[i];
}
printf("Az osszeg %f" , sum);
}
int atlagos(int n, int i , float v[10])
{
float atlag=0, sum = 0;
for (i=1;i<=n; i++)
{
sum+= v[i];
}
atlag=sum/n;
printf("\nAz atlag %f" , atlag);
}
int szorzatos(int n, int i , float v[10])
{
float szorzat=1;
for (i=0;i<=n; i++)
{
szorzat*=v[i];
}
printf("\nA szorzat %f" , szorzat);
}
int main()
{
float v[10];
int i,n;
scanf("%d", &n);
for (i=1;i<=n; i++)
{
scanf("%f", &v[i]);
}
printf("" ,osszeg(n,i,v));
printf("" ,atlagos(n,i,v));
printf("" ,szorzatos(n,i,v));
return 0;
}
Hibák:
1: az i paramétert nem kell átadni, az belső változó a függvényekben.
2: informatikában, különösen tömbök esetén jegyezd meg, hogy 0-tól kezdünk, vagyis az összes for ciklus úgy helyes, hogy for( i=0; i<n ...
3.hiba még:
ha valós számokat szorzol, vagy adsz össze, akkor az eredmény is az legyen, te int-tel dolgozol, de lebegőpontos kell neked
3.5 - tanács: float helyett double típust használj törtszámokra
4.hiba: a függvényeidben nem printf-elni kell az eredményt, hanem return-ölni
5.hiba: printf-ben a mainben pedig ha átadsz neki paramétert (például meghívod benne az osszeg függvényt), akkor a printf-nek tartalmaznia kell hozzá a kiírást, nem "" kell, hanem ott írod ki a függvény helyett.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!