可以幫我debug麼??

2012-04-01 12:00 pm

#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)

2012-04-04 7:34 am
✔ 最佳答案
你第23行不要宣告C,

你一在那宣告C那你在第5行宣告的C就會"看不到"了,

第29行的C是double型態而非矩陣所以就錯了.
2012-04-03 9:29 am
樓上的修改有什麼不同嗎 Orz
2012-04-02 2:28 pm
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 備份