尝试使用函数(1/n(n+1))来计算用户提示的整数"n"的xNumber。然而,当我试图运行它时,这个特定的函数似乎给出了一个错误。函数1/n和1/(n+1)在程序中工作得很好,但由于某种原因,添加n相乘会导致程序无法运行。
#include<stdio.h>
int main(){
int n,i=1,a=1,nstart;
float xNumber=1;
printf("Please enter a positive integer number: ");
scanf("%d",&n);
printf("NumberttxNumbern");
printf("------tt----n");
for(i=nstart;i<=n;i++){
xNumber += 1/(n(n+1)) ;//(n(n+1));
}
printf("%dtt%dnn",n,xNumber);
return 0;
}
nstart
未初始化,因此这是未定义的行为。只需在声明处初始化:
int n,i=1,a=1,nstart = 0;
错误原因如下:
n(n+1)
是有效的数学符号,但在编程中它是一个函数调用。
遗憾的是,n
不是一个函数。
你必须这样写这个公式:
n*(n+1)
其他回答者指出了你的代码中一些无关紧要的问题,这些问题你也必须解决。
几个修正和初始化:
int n,i=1,a=1,nstart=0;
和
xNumber += 1/(n*(n+1)) ;//(n(n+1));
程序如下:
#include<stdio.h>
int main(){
int n,i=1,a=1,nstart=0;
float xNumber=1;
printf("Please enter a positive integer number: ");
scanf("%d",&n);
printf("NumberttxNumbern");
printf("------tt----n");
for(i=nstart;i<=n;i++){
xNumber += 1/(n*(n+1)) ;//(n(n+1));
//^^^^^^^^^
}
printf("%dtt%dnn",n,xNumber);
return 0;
}