c++出现fatal error C1004: unexpected end of file found
#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5//进程个数,可改变intrt[N];//到达时间...
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 5 //进程个数,可改变
int rt[N]; //到达时间
int st[N]; //服务时间
int ct[N]; //完成时间
int cyt[N]; //周转时间
float rct[N]; //带权周转时间
float av[2];
int n,m;
void line() //美化程序,使程序运行时更加明朗美观
{
printf("------------------------------------------------------------------\n");
}
void start() //表示FCFS算法开始
{
line();
printf(" FCFS算法开始\n");
printf(" --Designed by Zhang Hong\n"); line();
}
void end() //表示FCFS算法结束
{
line();
printf(" FCFS算法结束,谢谢使用\n");
line();
}
void input()
{
printf("请输入%d个进程的到达时间:",N);
for (n=0;n<N;n++)
scanf("%d",&rt[n]);
printf("请输入%d个进程对应的服务时间:",N);
for (n=0;n<N;n++)
scanf("%d",&st[n]);
}
void random()
{
srand((unsigned)time(NULL));
for (n=0;n<N;n++)
{
rt[n]=rand()%100;
for (m=0;m<n;m++)
if (n!=0 && rt[n]==rt[m])
{
rt[n]=rand()%100;
m=0;
}
st[n]=rand()%98+1;
for (m=0;m<n;m++)
if (n!=0 && st[n]==st[m])
{
st[n]=rand()%98+1;
m=0;
}
}
}
void ordination() //重新排序,应对出现输入的到达时间为乱序的情况
{
int temp;
for (n=0;n<N;n++)
for (m=0;m<N-n-1;m++)
if (rt[m+1]<rt[m])
{
temp=rt[m+1];
rt[m+1]=rt[m];
rt[m]=temp;
temp=st[m+1];
st[m+1]=st[m];
st[m]=temp;
}
}
void fcfs() //执行fcfs算法
{
av[0]=0;
av[1]=0;
ct[0]=rt[0]+st[0];
for (n=1;n<N;n++)
{
if (ct[n-1]>=rt[n]) //考虑当前一个进程完成而后一个进程还没有到达的情况 ct[n]=ct[n-1]+st[n];
ct[n]=rt[n]+st[n];
}
for (n=0;n<N;n++)
cyt[n]=ct[n]-rt[n];
for (n=0;n<N;n++)
rct[n]=(float)cyt[n]/(float)st[n];
for (n=0;n<N;n++)
{
av[0]+=(float)cyt[n]/N;
av[1]+=rct[n]/N;
}
}
void output() //输出结果
{
line();
printf("进程名\t");
for (n=0;n<N;n++)
printf("\t%c",65+n);
printf("\t平均\n到达时间");
for (n=0;n<N;n++)
printf("\t%d",rt[n]);
printf("\n服务时间");
for (n=0;n<N;n++)
printf("\t%d",st[n]);
printf("\n完成时间");
for (n=0;n<N;n++)
printf("\t%d",ct[n]);
printf("\n周转时间");
for (n=0;n<N;n++)
printf("\t%d",cyt[n]);
printf("\t%0.1f",av[0]);
printf("\n带权周转时间");
for (n=0;n<N;n++)
printf("\t%0.1f",rct[n]);
printf("\t%0.1f",av[1]);
printf("\n");
line();
}
void main()
{
start();
{int q;
int c=1;
for (;c=1;)
{
for (;;)
{
printf("输入数据还是由系统随机产生数据?\n1、输入数据\t2、系统随机产生数据\n请输入:");
scanf("%d",&q);
}
if (q==1)
{ input();
break; }
else if (q==2)
{ random();
break; }
printf("输入错误,请重新输入!"); }
ordination(); //进程按照到达时间进行排序
fcfs();
output();
printf("继续输入,退出输入。请输入:");
scanf("%d",&c);
end();} 展开
#include <stdlib.h>
#include <time.h>
#define N 5 //进程个数,可改变
int rt[N]; //到达时间
int st[N]; //服务时间
int ct[N]; //完成时间
int cyt[N]; //周转时间
float rct[N]; //带权周转时间
float av[2];
int n,m;
void line() //美化程序,使程序运行时更加明朗美观
{
printf("------------------------------------------------------------------\n");
}
void start() //表示FCFS算法开始
{
line();
printf(" FCFS算法开始\n");
printf(" --Designed by Zhang Hong\n"); line();
}
void end() //表示FCFS算法结束
{
line();
printf(" FCFS算法结束,谢谢使用\n");
line();
}
void input()
{
printf("请输入%d个进程的到达时间:",N);
for (n=0;n<N;n++)
scanf("%d",&rt[n]);
printf("请输入%d个进程对应的服务时间:",N);
for (n=0;n<N;n++)
scanf("%d",&st[n]);
}
void random()
{
srand((unsigned)time(NULL));
for (n=0;n<N;n++)
{
rt[n]=rand()%100;
for (m=0;m<n;m++)
if (n!=0 && rt[n]==rt[m])
{
rt[n]=rand()%100;
m=0;
}
st[n]=rand()%98+1;
for (m=0;m<n;m++)
if (n!=0 && st[n]==st[m])
{
st[n]=rand()%98+1;
m=0;
}
}
}
void ordination() //重新排序,应对出现输入的到达时间为乱序的情况
{
int temp;
for (n=0;n<N;n++)
for (m=0;m<N-n-1;m++)
if (rt[m+1]<rt[m])
{
temp=rt[m+1];
rt[m+1]=rt[m];
rt[m]=temp;
temp=st[m+1];
st[m+1]=st[m];
st[m]=temp;
}
}
void fcfs() //执行fcfs算法
{
av[0]=0;
av[1]=0;
ct[0]=rt[0]+st[0];
for (n=1;n<N;n++)
{
if (ct[n-1]>=rt[n]) //考虑当前一个进程完成而后一个进程还没有到达的情况 ct[n]=ct[n-1]+st[n];
ct[n]=rt[n]+st[n];
}
for (n=0;n<N;n++)
cyt[n]=ct[n]-rt[n];
for (n=0;n<N;n++)
rct[n]=(float)cyt[n]/(float)st[n];
for (n=0;n<N;n++)
{
av[0]+=(float)cyt[n]/N;
av[1]+=rct[n]/N;
}
}
void output() //输出结果
{
line();
printf("进程名\t");
for (n=0;n<N;n++)
printf("\t%c",65+n);
printf("\t平均\n到达时间");
for (n=0;n<N;n++)
printf("\t%d",rt[n]);
printf("\n服务时间");
for (n=0;n<N;n++)
printf("\t%d",st[n]);
printf("\n完成时间");
for (n=0;n<N;n++)
printf("\t%d",ct[n]);
printf("\n周转时间");
for (n=0;n<N;n++)
printf("\t%d",cyt[n]);
printf("\t%0.1f",av[0]);
printf("\n带权周转时间");
for (n=0;n<N;n++)
printf("\t%0.1f",rct[n]);
printf("\t%0.1f",av[1]);
printf("\n");
line();
}
void main()
{
start();
{int q;
int c=1;
for (;c=1;)
{
for (;;)
{
printf("输入数据还是由系统随机产生数据?\n1、输入数据\t2、系统随机产生数据\n请输入:");
scanf("%d",&q);
}
if (q==1)
{ input();
break; }
else if (q==2)
{ random();
break; }
printf("输入错误,请重新输入!"); }
ordination(); //进程按照到达时间进行排序
fcfs();
output();
printf("继续输入,退出输入。请输入:");
scanf("%d",&c);
end();} 展开
4个回答
2016-05-09 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
参考下面
如果确定括号是匹配的话。请在程序结尾按一个回车。确保最后一行后面还有一个空行
提示说程序意外结束,这种问题一般是最后少了一个大括号造成的
1main函数里大括号没有匹配, struct定义}后没有分号, 如果用vc,使用预编译头文件没有include预编译头文件,默认include<stdafx.h>
展开全部
少了个花括号,最后面。
你这是写动态链接库,然后调用是吧。好像又不是。
如果是动态链接库的话,要在Project|Settings命令,Link页面的Object/library
modules编辑框中输入导入库的路径和文件名
Dubug/XX.lib;
你这是写动态链接库,然后调用是吧。好像又不是。
如果是动态链接库的话,要在Project|Settings命令,Link页面的Object/library
modules编辑框中输入导入库的路径和文件名
Dubug/XX.lib;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
尾巴缺少一个}
你把代码缩进整理一遍,可以看到{}肯定是不配对的。
你把代码缩进整理一遍,可以看到{}肯定是不配对的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
检查一下有没有半个大括号什么的。
如果出错的CPP里没有半个大括号,看看include的h文件里有没有问题?
如果出错的CPP里没有半个大括号,看看include的h文件里有没有问题?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询