Função fmod em C
21/08/2019
0
Boa tarde,
Nesse meu programa, eu quero que ele só aceite valores para h, se quando dividirmos 1/h, dê um numero inteiro. Por exemplo, se h=0.5, 1/h=2, então o programa deve aceitar e imprimir o valor de y(1). Porém, se inserirmos um h=0.3, 1/h=3.333, então o programa deve pedir para inserir outro valor de h
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float funcao_f(float x, float y){
float num, den, pot, result;
num = 0.04 * y;
den = x+1.0/x;
pot = pow(x+(1.0), 2);
result = (num/den) + pot;
return result;
}
int main(){
int i, n, m;
float h, k1, k2, k3, A;
float x = 0.0, y = 1000.0;
printf ("Digite o valor de h: ");
scanf ("%f", &h);
while (h>1 && fmod (1,h)!=0 || h<=0 && fmod (1,h)!=0){
printf ("Digite outro valor de h: ");
scanf ("%f", &h);
}
m = 1/h;
n = 2/h;
for(i=0;i<=n;i++){
k1 = h*funcao_f(x,y);
k2 = h*funcao_f(x + h/2,y + k1/2);
k3 = h*funcao_f(x + 3*h/4,y + 3*k2/4);
y = y + (2*k1/9) + (k2/3) + (4*k3/9);
x = x + h;
if (i == m) {
printf("O resultado para y(1): %f", y);
}
}
return 0;
}
Nesse meu programa, eu quero que ele só aceite valores para h, se quando dividirmos 1/h, dê um numero inteiro. Por exemplo, se h=0.5, 1/h=2, então o programa deve aceitar e imprimir o valor de y(1). Porém, se inserirmos um h=0.3, 1/h=3.333, então o programa deve pedir para inserir outro valor de h
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float funcao_f(float x, float y){
float num, den, pot, result;
num = 0.04 * y;
den = x+1.0/x;
pot = pow(x+(1.0), 2);
result = (num/den) + pot;
return result;
}
int main(){
int i, n, m;
float h, k1, k2, k3, A;
float x = 0.0, y = 1000.0;
printf ("Digite o valor de h: ");
scanf ("%f", &h);
while (h>1 && fmod (1,h)!=0 || h<=0 && fmod (1,h)!=0){
printf ("Digite outro valor de h: ");
scanf ("%f", &h);
}
m = 1/h;
n = 2/h;
for(i=0;i<=n;i++){
k1 = h*funcao_f(x,y);
k2 = h*funcao_f(x + h/2,y + k1/2);
k3 = h*funcao_f(x + 3*h/4,y + 3*k2/4);
y = y + (2*k1/9) + (k2/3) + (4*k3/9);
x = x + h;
if (i == m) {
printf("O resultado para y(1): %f", y);
}
}
return 0;
}
Gabriel
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)