可以幫我debug麼??
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int n,c[21];
double test(double r,int n)
{
int l;
double sum=0;
for(l=1;l<=n;l++)
{
sum=sum+c[l]/pow((1+r),l);
}
sum=sum+c[0];
return sum;
}
int main(void)
{
int i;
double a=0,b=1,c,fa,fb,fc,k;
scanf("%d",&n);
while(n!=0)
{
for(i=0;i<=n;i++)
{
scanf("%d",&c[i]);
}
fa=test(a,n);
fb=test(b,n);
while(fa*fb<0)
{
c=(a+b)/2;
fc=test(c,n);
if(fabs(fc)<0.000001)
{
k=100*c;
printf("%.2f%%",k);
break;
}
else if(fa*fc<0)
{
b=c;
}
else if(fb*fc<0)
{
a=c;
}
}
scanf("%d",&n);
}
system("pause");
return 0;
}
compile 以後 他說錯誤在第二十九行 scanf("%d",&n);
出現 subscripted value is neither array nor pointer
回答 (3)
✔ 最佳答案
你第23行不要宣告C,
你一在那宣告C那你在第5行宣告的C就會"看不到"了,
第29行的C是double型態而非矩陣所以就錯了.
For compiler error:
change the following line:
scanf("%d",&c[i]);
to
scanf("%d", c+i );
收錄日期: 2021-04-30 12:58:19
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20120401000016KK01118
檢視 Wayback Machine 備份