void main()
{
float a[10],*pa=a,*max=a,*min=a,*t,p=0.0;
for (pa=a;pa<a+10;pa++)
scanf("%f",pa);
for (pa=a+1;pa<a+10;pa++)
{ if(*max<*pa) t=max,max=pa,pa=t;
if(*min>*pa) t=min,min=pa,pa=t; }
for (pa=a;pa<a+10;pa++)
p+=*pa;
p=p/10;
printf("max=%f,min=%f,p=%f\n",*max,*min,p);
getch();
}
运行就闪一下,按Alt+F5提示浮点格式错误程序终止
void main()
{
float a[10],*pa=a,*max=a,*min=a,*t,p=0.0;
for (pa=a;pa<&a[10];pa++)
scanf("%f",pa);
for (pa=a+1;pa<&a[10];pa++)
{ if(*max<*pa) { t=max,max=pa,pa=t;}
if(*min>*pa) { t=min,min=pa,pa=t;} }
for (pa=a;pa<&a[10];pa++)
p+=*pa;
p=p/10;
printf("max=%f,min=%f,p=%f\n",*max,*min,p);
getch();
}
修改的地方都加粗了.
pa<a+10某些编译器可能会出现你不期望的结果,另外,像t=max,max=pa,pa=t;这种情况要慎用逗号,有些编译器的默认优化也可能出现非预期的结果.
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息