
一个C语言的错误 warning C4700: local variable 'n' used without having been initialized
intmain(){printf("enterthestudent'stotalnum\n");intn;input(n);//功能1:输入学生信息FILE*fp;if(...
int main()
{
printf("enter the student's total num\n");
int n;
input(n);//功能1:输入学生信息
FILE *fp;
if ((fp=fopen("file.txt","w"))==NULL)
{
printf("can not open file \n");
exit(1);
}
int i;
for (i=0;i<n;i++)
{
fprintf(fp,"%d%s%d%d%d",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3]);
}
fclose (fp);
应该怎么改 展开
{
printf("enter the student's total num\n");
int n;
input(n);//功能1:输入学生信息
FILE *fp;
if ((fp=fopen("file.txt","w"))==NULL)
{
printf("can not open file \n");
exit(1);
}
int i;
for (i=0;i<n;i++)
{
fprintf(fp,"%d%s%d%d%d",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3]);
}
fclose (fp);
应该怎么改 展开
3个回答
2016-06-23
展开全部
警告,编译器的警告,说明程序没有错误,可以运行,但是有小问题。当然很可能这个小问题会导致运行结果完全和想象的不一样。你这个应该就是了。n和p没有被初始化。虽然程序照样可以运行,但是n和p的值,估计不是你想要的inta,b,c;floatd,e,f;longg,h,i;cin>>a>>b>>c;cin>>d>>e>>f;cin>>g>>h>>i;intm;m=max(a,b,c);你看,你前面这些变量都有声明以及赋值。只有n,p没有
2016-06-23
展开全部
按C语言旧版标准:变量声明(定义)应该放在最前面,不能在代码段中间声明(定义)变量,所以,最好,int n;int i; FILE *fp;放在这句之前:printf("enter the student's total num\n"); 你的代码,多半是这个问题;
通常,良好的编程习惯也是把变量声明放在一段代码的最前面;
2. 虽然不清楚你的函数input(n)是怎么实现,但是可以预知,你无法通过这个函数获取到n的值,这里变量应该传址;
3. 结构体变量没有定义:stu
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第2句改成int n = 0应该就不会报这个错了,但是否有其他问题不知道。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询