一个简单问题,求解
#include<math.h>
#include<stdio.h>
double multinomial_sum(int n , double a[] , double x );
void main(){
int n = 5;
double x, sum;
double a[] = {1,1,1,1,1,1};
printf("输入x的值: \n");
scanf("%f",x);
sum = multinomial_sum(n , a , x);
printf("multinomial_sum = %f\n", sum);
return;
}
double multinomial_sum(int n , double a [], double x){
int i;
double sum = 0;
for(i=0; i<=n; i++)
sum = sum + a[i]*pow(x,i);
return sum ;
}
以上程序运行时出现如下反应
但是将主函数中的输入scanf去掉变成
void main(){
int n = 5;
double x =10.0, sum;
double a[] = {1,1,1,1,1,1};
printf("输入x的值: \n");
//scanf("%f",x);
sum = multinomial_sum(n , a , x);
printf("multinomial_sum = %f\n", sum);
return;
}
这下运行就正常了。请问我输入语句是哪错了?
[解决办法]
要这样
scanf("%f",&x);
[解决办法]
输入的时候需要加 &
[解决办法]
上面两楼正解
C语言经常会忽略的一个问题,scanf()要使用指针类型,即取变量地址(&符号)
经常写的话就不会忘了