C语言排队接水
答案:4 悬赏:40 手机版
解决时间 2021-01-16 04:19
- 提问者网友:像風在裏
- 2021-01-15 06:06
C语言排队接水
最佳答案
- 五星知识达人网友:山有枢
- 2021-01-15 07:28
总算弄明白了。那个时间算了好长时间,结果发现是除了自己以外的前面的人的时间之和。也就是说,第一个人的等待时间为0。第二个人的等待时间为1。第三个人的等待时间为13。。。。。。
经过测试,输出和要求的一样。输入文件名为input.txt。输出文件名为output.txt。
#include
#include
main()
{
int n,i,j,temp,rr;
int T[100],r[100];
float avg=0;
FILE *ipt,*opt;
if((ipt=fopen("input.txt","r"))==NULL)
{
printf("Can not open the file!\n");
exit(0);
}
if((opt=fopen("output.txt","w"))==NULL)
{
printf("Can not open the file!\n");
exit(0);
}
fscanf(ipt,"%d",&n);
for(i=0;i {
fscanf(ipt,"%d",&T[i]);
}
for(i=0;i {
r[i]=i+1;
}
for(i=0;i {
for(j=i+1;j {
if(T[i]>T[j])
{
temp=T[i];
rr=r[i];
T[i]=T[j];
r[i]=r[j];
T[j]=temp;
r[j]=rr;
}
}
}
for(i=0;i {
for(j=0;j {
avg=avg+T[j];
}
}
for(i=0;i {
fprintf(opt,"%d ",r[i]);
}
avg=avg/n;
fprintf(opt,"\n%.2f\n",avg);
fclose(opt);
fclose(ipt);
}
经过测试,输出和要求的一样。输入文件名为input.txt。输出文件名为output.txt。
#include
#include
main()
{
int n,i,j,temp,rr;
int T[100],r[100];
float avg=0;
FILE *ipt,*opt;
if((ipt=fopen("input.txt","r"))==NULL)
{
printf("Can not open the file!\n");
exit(0);
}
if((opt=fopen("output.txt","w"))==NULL)
{
printf("Can not open the file!\n");
exit(0);
}
fscanf(ipt,"%d",&n);
for(i=0;i
fscanf(ipt,"%d",&T[i]);
}
for(i=0;i
r[i]=i+1;
}
for(i=0;i
for(j=i+1;j
if(T[i]>T[j])
{
temp=T[i];
rr=r[i];
T[i]=T[j];
r[i]=r[j];
T[j]=temp;
r[j]=rr;
}
}
}
for(i=0;i
for(j=0;j {
avg=avg+T[j];
}
}
for(i=0;i
fprintf(opt,"%d ",r[i]);
}
avg=avg/n;
fprintf(opt,"\n%.2f\n",avg);
fclose(opt);
fclose(ipt);
}
全部回答
- 1楼网友:往事隔山水
- 2021-01-15 10:28
排序问题.用时间少的就排前面
时间就是平均值.
时间就是平均值.
- 2楼网友:青灯有味
- 2021-01-15 08:18
就是谁最快谁先打水,那么时间就是他前面的人加上自己的时间
第一个就是她自己时间,第二个是第一个加上第二个的,用t表示等待时间
tn=(t(n-1)+Tn),Tn是自己的时间,用一个递归就能做,或者直接展开,tn=Tn+
T(n-1)+T(n-2)+...+T1
第一个就是她自己时间,第二个是第一个加上第二个的,用t表示等待时间
tn=(t(n-1)+Tn),Tn是自己的时间,用一个递归就能做,或者直接展开,tn=Tn+
T(n-1)+T(n-2)+...+T1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯