浮動小数点にの計算について

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

浮動小数点にの計算について

#1

投稿記事 by gama » 2年前

コード:


#include <stdio.h>

int main(){
double a[5];
int i = 0 , j;
double tmp;
for( ; i < 5 ; ++i){
scanf("%lf" , &a[i]);
}
for( i = 4 ; i >= 0 ; --i){
for( j = i - 1 ; j >= 0 ; --j){
if(a[i] > a[j]){
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
printf("Sorted Array --> ");
for( i = 0 ; i < 5 ; ++i){
printf( "%lf " , a[i]);
}
puts("");
return 0;
}
昇順に並べたプログラムに、小さい順から計算をしていきたいと考えています
{(1番小さい数値) * (2番目に小さい数値)} - {(3番目に小さい数値) * (4番目に小さい数値)}
で計算したいのですがどう行うとよいのでしょうか?

box
記事: 2002
登録日時: 13年前

Re: 浮動小数点にの計算について

#2

投稿記事 by box » 2年前

ほんのちょっとしたサンプルコードです。
ところで、過去にご自分が立てたトピックは解決したんですかね?

コード:

#include<stdio.h>

#define N (4)

void inputArray(double *a)
{
    int i;

    for (i = 0; i < N; i++) {
        printf("Data No.%d > ", i + 1);
        scanf("%lf", &a[i]);
    }
}

void printArray(double *a)
{
    int i;

    for (i = 0; i < N; i++) {
        printf("Data No.%d = %f\n", i + 1, a[i]);
    }
}

void sortArray(double *a)
{
    int i, j;

    for (i = 0; i < N - 1; i++) {
        for (j = i; j < N; j++) {
            if (a[i] > a[j]) {
                double t = a[i];
                a[i] = a[j], a[j] = t;
            }
        }
    }
}

void calcArray(double *a)
{
    printf("%lf\n", a[0] * a[1] - a[2] * a[3]);
}

int main(void)
{
    double arr[N];

    inputArray(arr);
    sortArray(arr);
    printArray(arr);
    calcArray(arr);
    return 0;
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

gama
記事: 6
登録日時: 2年前

Re: 浮動小数点にの計算について

#3

投稿記事 by gama » 2年前

解決しました。
すこし時間がかかりましたがすごく助かりました

返信

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