Kayan nokta sayısını kesikli parçalara bölen bir program oluşturmam gerekiyor. End_actual'dan (5.66882) end_actual (8.05153) 'den artışa 0.43322 artışlarla gitmem gerekiyorsa, end_actual değeri aşıldıklarında end_actual değerine azaltılmalı ve işlem sonlandırılacaktır. i değiştirirseniz İşte Kayan nokta sayısını ayrık segmentlere ayırma
sonuç 5,66882 6,10204 6,53526 6,96848bu durumda benim girişimi
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
int main()
{
float max=9.5678;
float min= 5.2356;
float diff=max-min;
float start= 10; //percentages
float end= 65; //percentages
float incr= 10; //percentages
int steps= ((end-start)/incr);
float start_actual= min+ (diff*start/100);
float end_actual= max-(diff*(100-end)/100);
float incr_actual= diff*incr/100;
cout<<"Min value is "<<min<<endl;
cout<<"Max value is "<<max<<endl;
cout<<"start_actual is "<<start_actual<<endl;
cout<<"end_actual is "<<end_actual<<endl;
cout<<"increment is"<<incr_actual<<endl;
cout<<"steps is"<<steps<<endl;
float value;
steps=steps+1;
for(int i=0;i<=steps;i++)
{
value= start_actual + (incr_actual*i);
if(value<=end_actual)
cout<<"value is "<<value<<endl;
else if ((end_actual-value)<incr_actual)
{
value=end_actual;
cout<<"final value is "<<value;
break;
}
//else if (((value-end_actual)<0.1)||((-value+end_actual)<0.1))
//cout<<"value is"<<end_actual<<endl;
}
//cout<<"diiff "<<diff<<endl;
getchar();
return(0);
}
.... vs .. 8,05153
ama
float start= 10; //percentages
float end= 65; //percentages
float incr= 5; //percentages
'in değeri
Son değer, yuvarlama hataları nedeniyle bu soruna nasıl çözümleneceğinden iki kez yazdırılır (8.05153)? peşin
Teşekkür .. Vipin
"İki kere basıldı" nasıl yazılır? Yazdırmak için bir döngü kullanmıyorsunuz. Ayrıca, sorunun ne olduğu oldukça açık değil. Kayan nokta değerleri sınırlıdır ve bunu hesaba katmalısınız. – einpoklum