C程序种Undefined symbol '_e' module的问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:10:52
我做一作业“求SUM=a+aa+aaa+。。。+n个a的值,a是数字。例如2+22+222+22222(此时n=5),n由键盘输入。”
我做的程序如下
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
int n,i;
float sum,p;
sum=0,p=2;
scanf("%d",&n);
for(i=1;i<=n;i++)
{p=p+2*1*e(i-1);
sum=sum+p;
}
printf("sum=%d",sum);
}
每次LINK的时候都说Undefined symbol '_e' module,
这是什么问题?没定义e么?怎么定义啊? 我想表达的是1*10的(i-1)次方,用1*e(i-1)有问题么? 曾用过1e(i-1)结果Compile的时候出错

你这样用 e 是不对的,e 后面必须跟的是数字
你要实现这个功能,可以用math 库里的 double pow(double x,double y);
计算的是 x 的 y 次方,原程序可改为
for(i=1;i<=n;i++)
{

p=p+2*pow(10,i-1);

sum=sum+p;
}

C中没有e吧
没用过,不过按照你这道题的思路,我改进你的程序,
VC6.0运行通过,你看看能不能满足你要求?
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
int n,i;
int sum,p;
sum=2,p=2;
scanf("%d",&n);
for(i=1;i<n;i++)
{
p=p*10+2; //每次要加的数,分别是:2 22 222 ....
sum=sum+p; //每次将其相加
}
printf("sum=%d\n",sum);
}

没定义就是没定义,还那么多费话
要想表达10的i次方
要么调用数学库函数pow
功 能: 指数函数(x的y次方)
用 法: double pow(double x, double y);
或pow10()
功 能: 指数函数(10的p次方)
用 法: double pow10(int p);

要么自己写一个

用pow函数就好了
函数名: pow
功 能: 指数函数(x的y次方)
用 法: double pow(double x, double y);
程序例:
#include <math.h>