关于c语言中 用指针求最大值的问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 05:49:38
为什么没有显示出结果!谁能帮我在原有的基础上改一下!谢谢
#include <stdio.h>
main()
{
int c,i,j;
int max;
int a[100];
int *p;
FILE *fp;
fp=fopen("D:\\abc.txt" ,"w");
if(fp!=NULL)
{
for (i=0;i<=100;i++)
fprintf(fp,"%d\t",i);
}
fclose(fp);
return 0;

fp=fopen("D : \\abc.txt" ,"r");
j=0;
while((c=fgetc(fp))!=EOF)
{

c=a[j++];
}
p=&a[0];
for (j=1;j<100;j++)
if( *p>a[j] )
continue;
else
{
p=&a[j];
}
printf("max=%d",*p);

return 0;
}
#include <stdio.h>
main()
{
int c,i,j;
int max;
int a[100];
int *p;
FILE *fp;
fp=fopen("D:\\abc.txt" ,"w");
if(fp!=NULL)
{ <

沙发己把主要错误说出来了,我把完整代码给你写下。
输出最大是99,为什么不是100,因为你写入文件时是0到100,那样有101个,但你定义的数组为100个元素,照你最后的循环也就是取最大值,只能取100个,第100个就是99,或许这是你的大意,

所以学C 是要非常仔细,因为经常因一点小错误而使结果和原意完全不同,而且又很难发现

#include <stdio.h>
main()
{
int c,i,j;
int max;
int a[100];
int *p;
FILE *fp;
fp=fopen("D:\\abc.txt" ,"w");
if(fp!=NULL)
{
for (i=0;i<=100;i++)
fprintf(fp,"%d\t",i);
}
fclose(fp);

fp=fopen("D:\\abc.txt" ,"r");

for(j=0;j<100;j++)
{

fscanf(fp,"%d",&a[j]);
if(feof(fp))
break;

}
p=a;
for (j=1;j<100;j++)
{
if( *p<a[j] )

p=&a[j];
}
printf("max=%d",*p);
getchar();
return 0;
}

#include <stdio.h>
int main()
{
int c,i,j;
int max;
int a[100];