2015-06-01 116 views
-3

我想在C程序中轉換此方程來求解方程,但結果總是錯誤的。我想將所有三個包圍方程轉換爲C代碼。我已經對前兩個代碼進行了編碼,但請檢查是否有問題。將方程轉換爲c程序

Equations Here

代碼第一方程

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

int main() 
{ 
    /* Define temporary variables */ 
    double r1,r2,u; 
    double upper,lower,value,result; 

    printf("Enter coefficients r1"); 
    scanf("%f",&r1); 

    printf("Enter coefficients r2 "); 
    scanf("%f,&r2); 

    printf("Enter coefficients u "); 
    scanf("%f",&u); 

    /* Assign the value we will find the cosh of */ 
    value = r1*r2; 

    /* Calculate the Hyperbolic Cosine of value */ 
    upper = acos(value); 

    lower = sqrt((u*u)+1) - u; 

    result = upper/lower; 

    /* Display the result of the calculation */ 
    printf("The spinner rotaiton angle is %f",result); 

    return 0; 
} 

代碼第二方程

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

int main() 
{ 
    /* Define temporary variables */ 
    double r,w,u; 
    double a1,result; 

    printf("Enter coefficients R"); 
    scanf("%f",&r); 

    printf("Enter coefficients w angular velocity "); 
    scanf("%f,&w); 

    printf("Enter coefficients u cofficient of friction"); 
    scanf("%f",&u); 

    a1 = sqrt((u*u)+1) - u; 
    a2 = a1*a1; 
    a3 = sqrt (1 + a2); 
    result = r * w * a3; 


    /* Display the result of the calculation */ 
    printf("The departure velocity is %f",result); 
    scanf(%f); 

    return 0; 
} 
+0

也ACOSH即COS雙曲線的示值誤差 – Nitin

+0

你有什麼問題的倒數。 –

+2

'scanf(「%f」,&r1);' - >'scanf(「%lf」,&r1);'etc. – chux

回答

4

線條

scanf("%f",&r1); 
scanf("%f",&w); 
scanf("%f",&u); 

使用錯誤的格式說明噸o閱讀double s。

需要的可以

scanf("%lf",&r1); // Use %lf instead of %f 
scanf("%lf",&w); 
scanf("%lf",&u); 

此外,它始終是檢查IO操作的返回值,並打印輸入數據,以確保該值被正確地讀出一個好主意。

if (scanf("%lf",&r1) != 1) 
{ 
    // Deal with the error. 
} 
printf("The value of r1: %lf\n", lf); 

此外,你必須

/* Calculate the Hyperbolic Cosine of value */ 
upper = acos(value); 

評論是否正確的代碼是對目前尚不清楚。您指向的鏈接表示您應該使用反雙曲餘弦,acosh

upper = acosh(value); 
+0

但acosh(價值);是錯誤的。「功能acosh應該有一個原型」這意味着 – Nitin

+0

現在acosh給我做主要錯誤和結果是-NAN – Nitin

+1

@Nitin,請參閱http://en.cppreference.com/w/c/numeric/math/acosh上的**錯誤處理**部分。 –

1

聲明

/* Calculate the Hyperbolic Cosine of value */ 
upper = acos(value); 

會給你的value反餘弦值,那麼該公式需要反雙曲餘弦值。

將其改爲:upper = acosh(value);由於acosh()函數計算value的反餘弦餘弦(餘弦的反雙曲線)。

收到值:

scanf("%lf",&r1); 
scanf("%lf",&w); 
scanf("%lf",&u);