【发布时间】:2016-01-23 18:42:11
【问题描述】:
对不起,我在编译代码时遇到问题,我不知道如何解决它,因为我不知道它要求什么。
这出现在终端中:
" usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crt1.o:在函数_start':
/build/buildd/glibc-2.21/csu/../sysdeps/x86_64/start.S:114: reference tomain'中没有定义
collect2:错误:ld 返回 1 个退出状态
"
我留下我的代码:
#include<stdio.h>
#include<string.h>
void calcular_vocal(char cadena[]){
int l;
char vocales[5]="a,e,i,o,u";
int i, vector contadores[5];
l=strlen(cadena);
for(i=0;i<l;i++){
if(cadena[i] =='a')
cadena a++;
vector contadores[0]++;
if(cadena[i] =='e')
cadena e++;
vector contadores[1]++;;
if(cadena[i] == 'i')
cadena i++;
vector contadores[2]++;
if(cadena[i] =='o')
cadena o++;
vector contadores[3]++;
if(cadena[i] =='u')
cadena u++;
vector contadores[4]++;
for(i=0;i<5;i++){
int max,pos;
if(vector contadores[i]>max){
max = vector contadores [i];
pos = i;
}
}
printf("The most repeated vocal is %c %d",vocales[pos],max);
}
}
int main (void){
char calcular_vocal(char[]);
}
【问题讨论】:
-
不,这是问题XD
-
但这实际上是您通过编译器运行的代码?因为看起来好像你得到了一个链接器错误,而编译器不应该真正编译你的代码: int i, vector contadores[5];是非法的。矢量是什么?你也不会在任何地方初始化你的整数,所以你一定会在那里得到垃圾值。 a、e、o 和 u 似乎也没有被声明。您已经声明了 i,但它的目的是作为您循环的计数器。
-
代码中的
vector是什么?我能想象到的唯一方法是使用一些预处理器符号来表示任何东西或奇怪的东西...... -
变量名不能包含空格。
-
此代码只有在使用最奇怪的宏编写时才能编译,目的是让其他开发人员感到惊讶。你甚至不了解语言基础知识,例如如何使用数组、字符串或如何调用函数。通过阅读 Kernighan&Ritchie 或类似书籍开始学习 C。
标签: c function if-statement for-loop ansi