c语言编译时one or more multiply defined symbols found 。刚学c求大侠帮忙看看

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言编译时one or more multiply defined symbols found 。刚学c求大侠帮忙看看相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
#include<math.h>
#define N 10
double aver(double *p,int n)/*平均数函数*/
int i;
double sum=0;
for(i=0;i<n;i++)
sum+=*(p+i);
sum=sum/n;
return(sum);

double fangcha(double *p,int n)/*方差函数*/
double *a;/*定义a,储存数组的首地址*/
double sum=0;
int i;
a=p;
for(i=0;i<n;i++)
sum=sum+(*(p+i)-aver(a,n))*(*(p+i)-aver(a,n));
sum=sum/n;
return(sum);

main()
double x,y,a[N];
int k=0,i,j,b[12]=0;
for(i=0;i<N;i++)/*输入一组数*/
scanf("%lf",&a[i]);
x=aver(a,N);
printf("输出平均数x=%lf",x);
y=fangcha(a,N);
printf("输出方差y=%lf",y);
for(j=0;j<=3*sqrt(y);j++)

for(i=0;i<N;i++)

if(a[i]>=x-j&&a[i]<=x+j)
b[k]++;

k++;

for(i=0;i<12;i++)
printf(" %d ",b[i]);

意思是:一个或多个符号定义错误。

解决的方法和详细的操作步骤如下:

1、第一步,将源代码保存在文件中,然后编译并运行,如下图所示,然后进入下一步。

2、其次,完成上述步骤后,打开一个文本编辑器,添加上面的代码,然后将文件另存为hello.c,如下图所示,然后进入下一步。

3、接着,完成上述步骤后,打开命令提示符,输入保存文件的目录,键入“gcc  hello.c”,按下Enter键确认,然后编译代码,如下图所示,然后进入下一步。

4、然后,完成上述步骤后,如果代码中没有错误,命令提示符将跳至下一行并生成a.out可执行文件,如下图所示,然后进入下一步。

5、最后,完成上述步骤后,键入a.out以执行line程序。 可以在屏幕上看到“ Hello World”并完成,如下图所示。这样,问题就解决了。

参考技术A one or more multiply defined symbols found 的意思是你的代码中有重复定义的符号(函数名,变量名)。建议你把详细的编译结果贴出来,这样比较容易找到重复定义的地方。 参考技术B 重定义符号了, 给对应位置的符号随便加个英文字母就好了 参考技术C 并没有错误呀,编译通过。
只是如下代码,运行错误。

for(j=0;j<=3*sqrt(y);j++) // 条件3*sqrt(y),数值有可能很大,导致K很大,结果K超过12,导致溢出,

for(i=0;i<N;i++)

if(a[i]>=x-j&&a[i]<=x+j)

b[k]++;


k++;
本回答被提问者和网友采纳

以上是关于c语言编译时one or more multiply defined symbols found 。刚学c求大侠帮忙看看的主要内容,如果未能解决你的问题,请参考以下文章

vc++编译通过了.但生成exe文件时出现了one or more multiply defined symbols found请问可能是啥原因啊

one or more listeners failed to start问题解决思路

解决eclipse+MAVEN提示One or more constraints have not been satisfied 的问题

Tomcat Deployment failure ,locked one or more files

“Validation failed for one or more entities”异常的解决办法

one or more