国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

UVa 11100 The Trip

2019-11-08 02:37:19
字體:
來源:轉載
供稿:網友

題目

這里寫圖片描述

花了比較長的時間,遇到些問題

double轉換為int型時,總是會出現減1的情況,比如:t=15.01;a=(int)(t*100);得到的a=1500若t=15.11,則a=1510

在網上查閱資料知道: 首先 float double這類的數據是近似值 有精度問題 比如輸入8.00時,可能實際值是7.99999··· 所以取整時少了1 此處原理類似,解決方法是采用(int)(a+0.5)的方式,這樣取值就不會少1了

對于相差值在一美分內的條件,開始沒有找到合適的處理方法,通過對余數以及多于平均值人數的比較,決定最終可以少交易多少美分

技巧:

在處理金額時,取小數兩位不好處理,采取乘100再取整的方式,以美分為基本單位。便于處理結尾的小項金額。

代碼

#include<stdio.h>int main(){ int a[1001],n,i,ave,sum,c,r,ans; double tmp,change; while(1){ scanf("%d",&n); if(n==0) break; sum=0; c=0; ans=0; for(i=0;i<n;i++) { scanf("%lf",&tmp); a[i]=(int)(tmp*100+0.5); sum+=a[i]; } r=sum%n; ave=sum/n; for(i=0;i<n;i++) { if(a[i]>ave){ c=c+(a[i]-ave); ans++; } } if(r<ans) c-=r; else c-=ans; change=(double)c/100;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乾安县| 鹤岗市| 金寨县| 柳江县| 宝鸡市| 绥棱县| 习水县| 冷水江市| 贵德县| 雅安市| 宁德市| 冕宁县| 仲巴县| 松阳县| 永寿县| 尉犁县| 天镇县| 和龙市| 嘉荫县| 来宾市| 宝丰县| 茂名市| 蒙阴县| 陈巴尔虎旗| 临桂县| 昌吉市| 泗水县| 乃东县| 张家港市| 建德市| 南靖县| 商南县| 阿鲁科尔沁旗| 和田县| 惠安县| 双江| 正宁县| 稻城县| 太和县| 奎屯市| 徐水县|