সমস্যার লিঙ্কঃ http://school.outsbook.com/problems/problemdetails/328

#include <stdio.h>

int main() { float h; while(scanf("%f",&h)!=EOF){ float w = h * 4, ans = (h * w)/2; printf("Area of Triangle: %0.0f\n",ans); } return 0; }

#include <stdio.h>

int main()
{
    double h;
    while(scanf("%lf",&h)!=EOF){
        double w = h * 4, ans = (h * w)/2;
        printf("Area of Triangle: %0.0lf\n",ans);
    }
    return 0;
}

এই দুইটা কোডের মধ্যে float এ মান ভুল আসে, কিন্ত double এ ঠিক আসে (শুধুমাত্র 9965.23)। কারণ কী?

প্রথম কোডের স্ক্রিনশ্ট

দ্বিতীয় কোডের স্ক্রিনশট

বিঃ দ্রঃ প্রব্লেমে প্রথম ইনপুটে ১ মান বাড়ানো হয়েছে, সেটা সমস্যা নয়। এই প্রব্লেম সমাধানে ceil() ফাংশন ব্যবহার করা হয়েছে।

asked 21 Apr '18, 17:24

pollob1563's gravatar image

pollob1563
1876

edited 21 Apr '18, 18:23

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
73618


প্রবলেম সল্ভিং এর ক্ষেত্রে সবসময় float এর পরিবর্তে double ব্যবহার করা উচিৎ । তাহলে আপনি সেভ জোনে থাকতে পারবেন ।

float হল ৪ বাইট অন্যদিকে double হল ৮ বাইট এই জন্য জন্য অনেক সময় কম্পিউটার হিসাব করার সময় এই ৪ বাইট পার করে ফেলতে পারে । আর তখন হিসাবের গণ্ডগোল হতে পারে ।

ধন্যবাদ ।

permanent link

answered 21 Dec '18, 05:26

menon's gravatar image

menon
4.7k334

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×5
×3

question asked: 21 Apr '18, 17:24

question was seen: 242 times

last updated: 21 Dec '18, 05:26