ページ 1 / 1
浮動小数点にの計算について
Posted: 2022年3月06日(日) 19:19
by gama
コード:
#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番目に小さい数値)}
で計算したいのですがどう行うとよいのでしょうか?
Re: 浮動小数点にの計算について
Posted: 2022年3月06日(日) 21:09
by box
ほんのちょっとしたサンプルコードです。
ところで、過去にご自分が立てたトピックは解決したんですかね?
コード:
#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;
}
Re: 浮動小数点にの計算について
Posted: 2022年3月07日(月) 12:01
by gama
解決しました。
すこし時間がかかりましたがすごく助かりました