#include
main()
{
int n;
printf("请输入n(不大于20)个单精度数\n");
scanf("%d",n);
float a[20],*p,*q,temp;
for(;pscanf("%f",p);
for(p=a,q=a+n-1;pprintf("after inverse:");
for(p=a;pprintf("%f",*p);
return 0;
}
望采纳
在这段代码中,scanf函数读入n的时候没有使用地址符,导致读入的值不会被存储到n变量中。你需要在scanf函数中添加一个地址符,例如:
scanf("%d", &n);
同时,为了使程序更加稳健,建议您在for循环的条件表达式中添加一个限制,保证p指针不会超出a数组的范围。例如:
for(p = a; p < a + n; p++)
或者:
for(p = a; p < a + n && p < a + 20; p++)