题目描述
你们的助教CorpseCorpse由于平时摸鱼太多,总是不能早早地完成作业,这件事情被mymy学姐发现了,她为了督促CorpseCorpse好好学习想统计一下CorpseCorpse交作业的情况,mymy学姐知道统计这种重复性工作用电脑来做再方便不过了,她想请你设计一个程序帮她进行统计。
输入
共两行。
第一行,一个正整数n,表示CorpseCorpse总共需要交作业的次数。
第二行,n个整数x0,x1……xn−1,表示CorpseCorpse每次交作业距离ddl的天数(正整数,例如1,表示提前上交了1天;负整数,例如-3,表示在ddl之后3天才交上作业;0,表示正好在ddl当天交上了作业)。
输出
如果CorpseCorpse准时(包括提前)交作业的次数大于等于总次数的90%,则输出一行一个浮点数(保留两位小数,四舍五入),表示他交作业(包括每一次)的平均提前的时间。
如果CorpseCorpse准时(包括提前)交作业的次数小于总次数的90%大于等于总次数的50%,则输出一行一个正百分数(保留整数,向下取整),表示他准时交作业的次数的比例。
如果CorpseCorpse晚交作业的次数比例大于50%,则输出三行,第一行“My, please help Corpse!”(输出不包含引号),第二行一个正百分数(保留整数,向下取整),表示他晚交作业的次数的比例,第三行一个负浮点数(保留两位小数,四舍五入),表示他晚交作业的这些次晚交的平均天数。
题目来源及自己的思路
相关代码
include
include
int main(){
int n;
scanf("%d",&n);
int a=0;
int x[n];
double t;
double b;
for(a=0;a
scanf("%d",&x[a]);
}
for(a=0;a
if(x[a]>=0) t++;
}
b=t/n;
if(b>=0.9){
double xt;
for(a=0;a
xt+=x[a];
}
xt=xt/n;
xt=(int)(xt*100+0.5);
xt=(double)(xt)/100;
printf("%.2f",xt);
}
else if(b>=0.5&&b<0.9){
double yt;
yt=100*(t/n);
printf("%d%%",yt);
}
else if(b<0.5){
printf("My, please help Corpse!\n");
double zt;
n=(double)n;
zt=100*(n-t)/n;
printf("%d%%\n",zt);
double lt;
int z;
for(a=0;a
if(x[a]<0){
lt+=x[a];
z++;
}
}
lt=lt/z;
lt=(int)(lt*100-0.5);
lt=(double)lt/100;
printf("%.2f\n",lt);
}
return 0;
}
你期待的结果是什么?实际看到的错误信息又是什么?
为什么不管输什么都不输出任何东西?