ورودی int و خروجی float
سلام. وقت بخیر. یه تمرینی از تمرین هایی ک پی دی افش قرار داده شده سوال اینه که برنامه ای بنویسید که سه عدد صحیح را بگیرد و میانگین اعشاری آن ها را تحویل دهد. من وقتی مینویسم برنامه شو وقتی فرمت متغیر های ورودی رو int میذارم و فرمت خروجی که همون میانگین باشه رو float میانگینی که میگیره فقط بخش صحیح نتیجه رو نشون میده ولی زمانی که فرمت متغیر های ورودی رو هم float میذارم و عدد صحیح میدم به برنامه میانگینشونو درست و با اعشار بدست میاره. میخواستم ببینم مشکل چیه؟ چون که سوال گفته طوری بنویسید که فرمت عددهای ورودی عددا صحیح باشه.
آرش غران
0
19:55 1398/05/03
مرتب سازی بر اساس: زمان ارسال امتیاز

سلام دوست عزیز

احتمالا شما در کد خودتون خطی به این صورت دارید:

float avg = (a1 + a2 + a3) / 3;

که اتفاقی که برای کدتون میفته توسط زبان سی اینه که برای تسریع در محاسبات از محاسبات اعشاری صرف نظر میکنه. (چون به زعم خودش تمام ورودی ها عدد صحیح هستند و نیازی به محاسبه اعشاری نیست.) پس مقداری که در متغیر avg قرار میده یک عدد صحیح خواهد بود. یکی از روش های حل این موضوع اینه که اون رو مجبور به محسابه اعشاری کنید. برای اینکار کافیه به جای 3 مقدار 3.0 را بگذارید. احتمالا مشکل برطرف خواهد شد.

احمد انواری
استاد دوره
0
22:06 1398/05/06
بله همین بود بعد از دیدن فصل چهارم مشکل حل شد. ممنون
آرش غران
0
23:38 1398/05/06