fatal error C1004: unexpected end of file found 是什么错误?

#include<stdio.h>intf=0;intpai(inta[],intn);intfun(inta[],intn);voidmain(){inta[10]={... #include<stdio.h>
int f=0;
int pai(int a[],int n);
int fun(int a[],int n);
void main()
{
int a[10]={0},m,i,f=0;
scanf("%d",&m);
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
pai(a,10);
f=fun(a,m);
if(f=1) printf("%d",a);
else printf("no found");
}
int pai(int a[],int n)
{ int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-1;j++)
if(a[j]>a[j+1])
{a[j]=a[j+1]+a[j];
a[j+1]=a[j]-a[j+1];
a[j]=a[j]-a[j+1];
}
int fun(int a[],int n)
{
int low=0,high=9;
int mid=0;
while (f==0&&low<=high)
{
mid=(low+high)/2;
if(a[mid]==n) f=1;
if(a[mid]>n)
high=mid-1;
else
low=mid+1;
}
return f;
}
error C2601: 'fun' : local function definitions are illegal

fatal error C1004: unexpected end of file found

有两处错误,我不知道什么意思?请帮忙一下谢谢!
展开
 我来答
双鱼20188
2018-04-05 · TA获得超过8764个赞
知道小有建树答主
回答量:37
采纳率:0%
帮助的人:1.9万
展开全部

双击该错误,就会出现出错的那行程序,在该行程序的最前面加两条斜杠,就会出现隐藏的非法字符,删掉该字符,去掉斜杠,重新编译一下,就会成功。

  1. 驱动不稳定,与系统不兼容,这最容易出现内存不能为 Read 或者文件保护 。

  2. 系统安装了一个或者多个流氓软件,这出现 IE 或者系统崩溃的机会也比较大,也有可能出现文件保护 。

  3. 系统加载的程序或者系统正在运行的程序之前有冲突,尤其是部分杀毒软件监控程序 。

  4. 系统本身存在漏洞,导致容易受到网络攻击。 

  5. 病毒问题也是主要导致内存不能为 Read、文件保护、Explorer.exe 错误。

  6. 如果在玩游戏时候出现内存不能为 Read,则很大可能是显卡驱动不适合(这里的不适合有不适合该游戏、不适合电脑的显卡),也有可能是 DX9.0C 版本不够新或者不符合该游戏、显卡驱动 。

  7. 部分软件本身自身不足的问题 。

  8. 电脑硬件过热,也是导致内存不能为 Read 的原因之一。

  9. 电脑内存与主板兼容性不好也是导致内存不能为 Read 的致命原因。

yitsnlinyu
2013-04-07
知道答主
回答量:12
采纳率:0%
帮助的人:1.8万
展开全部
pai函数最后少了个花括号,if(f=1) printf("%d",a); 里面是f==1;a是数组名,’%d‘格式不搭配

//改正后的代码
#include<stdio.h>
int f=0;
int pai(int a[],int n);
int fun(int a[],int n);
void main()
{
int a[10]={0},m,i,f=0;
scanf("%d",&m);
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
pai(a,10);
f=fun(a,m);
if(f==1) printf("%d",a[i]); //这里不知你要输出什么,
//如果要输出整个数组,用循环,a是数组,原来的 printf("%d",a);会报错
else printf("no found");
}
int pai(int a[],int n)
{
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-1;j++)
if(a[j]>a[j+1])
{
a[j]=a[j+1]+a[j];
a[j+1]=a[j]-a[j+1];
a[j]=a[j]-a[j+1];
};
}
int fun(int a[],int n)
{
int low=0,high=9;
int mid=0;
while (f==0&&low<=high)
{
mid=(low+high)/2;
if(a[mid]==n) f=1;
if(a[mid]>n)
high=mid-1;
else
low=mid+1;
}
return f;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幸巴达
2013-04-06 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6953
采纳率:38%
帮助的人:2467万
展开全部
a[j]=a[j]-a[j+1];
}
} // <- 这里加个大括号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xly931
2013-04-06 · TA获得超过264个赞
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:134万
展开全部
逻辑错误我不管,语法错误有三个,第零个是person类纯虚函数写错了,第一个是Boss类少了个反大括号,第二个是主函数里既然对指针取内容了,就不要用箭头访问,所以去掉前面的星号。我给你注释了。你贴的那个语法错误一看就知道是括号写错了,还有你的排版太难看了。
#include
#include
using namespace std;
class Person
{
public:
virtual void print() = 0;//纯虚函数 =0不能省略
virtual void input() = 0;
virtual void getpay()=0;
protected:
char name[20];
int number;
int age;
char sex;
float salary;
};
class Boss:public Person
{
public:
void input()
{
cout<>name;
cout<>number;
cout<>age;
cout<>sex;
cout<>salary;
};
virtual void print()
{
cout<<"姓名"<<"\t\t\t"<<"编号"<<"\t\t\t"<<"年龄"<<"\t\t\t"<<"性别"<<endl;
cout<<name<<"\t\t\t\t"<<number<<"\t\t\t"<<age<<"\t\t\t\t"<<sex<<endl;
};
void getpay()
{
cout<<"老板的工资为%f,salary"<<endl;
};
};//---------------少了个反括号
class Employee:public Person{
public:
void input()
{
cout<>name;
cout<>number;
cout<>age;
cout<>sex;
cout<>salary;
};
void print()
{
cout<<"姓名"<<"\t\t\t"<<"编号"<<"\t\t\t"<<"年龄"<<"\t\t\t"<<"性别"<<endl;
cout<<name<<"\t\t\t\t"<<number<<"\t\t\t"<<age<<"\t\t\t\t"<<sex<<endl;
};
void getpay()
{
cout<<"雇员的工资为%f,salary"<<endl;
};
};
class Hourlyworker:public Person{
public:
void input()
{cout<>name;
cout<>number;
cout<>age;
cout<>sex;
cout<>salary;
};
void print()
{cout<<"姓名"<<"\t\t\t"<<"编号"<<"\t\t\t"<<"年龄"<<"\t\t\t"<<"性别"<<endl;
cout<<name<<"\t\t\t\t"<<number<<"\t\t\t"<<age<<"\t\t\t\t"<<sex<<endl; };
void getpay(){
cout<<"小时工的工资为%f,salary"<<endl;};
};
class Commworker:public Person{
public:
void input()
{cout<>name;
cout<>number;
cout<>age;
cout<>sex;
cout<>salary;
};
void print()
{cout<<"姓名"<<"\t\t\t"<<"编号"<<"\t\t\t"<<"年龄"<<"\t\t\t"<<"性别"<<endl;
cout<<name<<"\t\t\t\t"<<number<<"\t\t\t"<<age<<"\t\t\t\t"<<sex<<endl; };
void getpay(){
cout<<"营销员的工资为%f,salary"<<endl;};
};
int main(){
int n;
Person *p;
Boss b;
Employee e;
Hourlyworker h;
Commworker c;
cout<<"请选择职业类型:"<<endl;
cout<<"1.老板"<<" "<<"2.雇员"<<" "<<"3.小时工"<<" "<<"4.营销人员"<<endl;
cout<<"请输入职业类型对应的数字:";
cin>>n;
cout<<endl;
switch(n)
{
case 1:{
p=&b;//-------------------用指针前面就不要加*
p->input();//-------------------用指针前面就不要加*
p->print();//-------------------用指针前面就不要加*
p->getpay();//-------------------用指针前面就不要加*
}break;
case 2:{p=&e;//-------------------用指针前面就不要加*
p->input();//-------------------用指针前面就不要加*
p->print();//-------------------用指针前面就不要加*
p->getpay();}break;
case 3:{p=&h;//-------------------下同
p->input();
p->print();
p->getpay();}break;
case 4:{p=&c;
p->input();
p->print();
p->getpay();}break;
default:cout<<"你的输入有误!"<<endl;
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天之血泪ぬd8a
2013-04-05 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:78.2万
展开全部
你的pai函数后面少个}
就这个原因
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式