一道c语言问题,请高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/09/22 22:34:23
1. int i=0;
while(i!=MAX){
if(a[i]->score > 90)
fprintln(file, a[i]->name);
i++;
}
MAX是一个常量,a[i]是一个指针,它指向一个struct(结构),它包含score和name, fprintln方法是将名字写入到名为变量file的文件中,该程序在编译时通过,但在运行是却报错,分析可能出错的原因?
请注意编译时并没有错误,只是在运行中才出了错误!

i++改成++i...也许是一种强迫症...
检查a[i]是否有越界...你应该把while条件改为 i < Max
或者直接用for循环
for( int i = 0; i < Max; ++i)
{
if(a[i]->score > 90)
{
fprintln(file, a[i]->name);
}
}

照你的写法
当i = Max的时候 a[Max] 已经越界了

fprintln(file, a[i]->name);
好像没有fprintln这个函数吧。

要不你试一试:
fprintf()
按格式输入到文件,其原型是int fprintf(FILE *stream, const char *format[, argument, …]);其用法和printf()相同,不过不是写到控制台,而是写到文件罢了。
例:fprintf(fp,"%s","Hahaha");

仔细检查一下
函数名字书写是否统一 正确
连接也没错?