数値の計算

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
tkh
記事: 3
登録日時: 7年前

数値の計算

#1

投稿記事 by tkh » 7年前

プログラムでの数値の計算をしてます。
この計算を行うとそれぞれの計算式の所でエラーが出ます。
問題箇所がs_2=のところで1838.5を1838にすればエラーなくできます。
また同様にs_3のところでも1838.5を1838にすればエラーなくできます。
s_4のところでは1970.5を1970に1912.7を1912にすればエラーなくできます。
でも本来はこの小数点を含めて計算がしたいです。どうしたらこのエラーなく実行する事ができますか?

コード:

#include<stdio.h>
int main(void)
{
double s_1,s_2,s_3,s_4;


		s_1=(((3429-2210)^2+(915-278)^2)^(1/2))/770+(740-392.5)/770+(392.5-192.5)/400+(192.5-142.5)/25+1+(192.5-142.5)/50+(392.5-192.5)/250;
			printf("s_1   %f秒\n",s_1);
		s_2=(((3429-2210)^2+(1838.5-278)^2)^(1/2))/380+(1132.5-392.5)/380+(1132.5-932.5)/250+(932.5-882.5)/50+1+(932.5-882.5)/25+(1132.5-932.5)/400;
			printf("s_2   %f秒\n",s_2);
		s_3=(((2210-2015)^2+(1838.5-1480)^2)^(1/2))/770+(1132.5-921.5)/770+(921.5-721.5)/400+(721.5-671.5)/25+1+(721.5-671.5)/50+(921.5-721.5)/250;
			printf("s_3   %f秒\n",s_3);
		s_4=(((2015-1970.5)^2+(1912.7-1480)^2)^(1/2))/770+(1087.5-921.5)/770+1;
			printf("s_4   %f秒\n",s_4);

	return 0;
}

かずま

Re: 数値の計算

#2

投稿記事 by かずま » 7年前

^ は、整数の排他的論理和演算子(exclusive OR operator)
なので、浮動小数点数には使用できません。2乗したいのなら、
同じ数を掛け算するマクロを用意すればよいでしょう。
また (1/2)乗したいのなら、math.h に宣言されている
平方根関数 sqrt を使いましょう。

コード:

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

#define S(x) ((x) * (x))

int main(void)
{
    double s_1, s_2, s_3, s_4;
 
    s_1 = sqrt(S(3429-2210) + S(915-278))/770 + (740-392.5)/770 + (392.5-192.5)/400
        + (192.5-142.5)/25 + 1 + (192.5-142.5)/50 + (392.5-192.5)/250;
    printf("s_1   %f秒\n", s_1);
    s_2 = sqrt(S(3429-2210) + S(1838.5-278))/380 + (1132.5-392.5)/380 + (1132.5-932.5)/250
        + (932.5-882.5)/50 +1 +(932.5-882.5)/25 + (1132.5-932.5)/400;
    printf("s_2   %f秒\n", s_2);
    s_3 = sqrt(S(2210-2015) + S(1838.5-1480))/770 + (1132.5-921.5)/770 + (921.5-721.5)/400
        + (721.5-671.5)/25 + 1 +(721.5-671.5)/50 + (921.5-721.5)/250;
    printf("s_3   %f秒\n", s_3);
    s_4 = sqrt(S(2015-1970.5) + S(1912.7-1480))/770 + (1087.5-921.5)/770 + 1;
    printf("s_4   %f秒\n",s_4);

    return 0;
}

tkh
記事: 3
登録日時: 7年前

Re: 数値の計算

#3

投稿記事 by tkh » 7年前

分かりやすい説明ありがとうございます。
無事に出来ました。

返信

“C言語何でも質問掲示板” へ戻る