21 Востаннє редагувалося User 298 (26.10.2013 23:11:05)

Re: Не можу рішити задачу по функціям, допоможіть!

allspice написав:

для "y" (obchislenya) так а для функції "vedenya" де тре аж 6 значинь повернути?

і цей код теж неправельно працює, бо у функції "vedenya" чомусь неприсвоюються значення...

Передавайте за посиланнями:

float foo( float &x, float &y,...);

UPD: тут же сішка... Тоді за адресами, через покажчики. Або глобальні змінні (небажано).

22

Re: Не можу рішити задачу по функціям, допоможіть!

Bartash написав:

Тоді за адресами, через покажчики.

а покажчики можуть мати тип float?

23

Re: Не можу рішити задачу по функціям, допоможіть!

Make me unsee it!
Навіщо так ускладнювати?
Прочитайте це:
(рус) http://younglinux.info/c/function

24

Re: Не можу рішити задачу по функціям, допоможіть!

Ось що в кінці в мене вийшло, може комусь треба! Дякую всім)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

float vedenya ();
float obchislenya (float i, float k, float a, float b, float x, float z);
float vivid (float y);

int main()
{
    float i,k,a,b,x,z,y;
    i=vedenya();
    k=vedenya();
    a=vedenya();
    b=vedenya();
    x=vedenya();
    z=vedenya();
    y=obchislenya(i,k,a,b,x,z);
    vivid (y);
    return 0;
}

float vedenya () //Функція введення.
{
    float y;
    printf("\nVedit znchenya:"); scanf("%f",&y);
    return y;
}

float obchislenya (float i, float k, float a, float b, float x, float z)
{
    float y;
    y =((pow(i,3)-1)/k-4)*sqrt(2*a*b+sin(x)+cos(z));
    return y;
}

float vivid (float y)
{
    printf("\n%f",y);
}

25

Re: Не можу рішити задачу по функціям, допоможіть!

1. функція "вивід" не повертає значень
2. функцію "введення" я б радив перейменувати на "запит", оскільки введенням це назвати не можна
також її можна було б зробити інлайновою, але... ні.

Подякували: allspice1

26

Re: Не можу рішити задачу по функціям, допоможіть!

Так красивіше
int main()
{
  vyvid(obchislennya(in("i"),in("k"),in("a"),in("b"),in("x"),in("z"));
}

float in (char *name) //Функція введення.
{
    float y;
    printf("\nVedit znchenya %s: ", name); 
    scanf("%f",&y);
    return y;
}
//решта - як у вас
Подякували: incred, allspice2