当我编译几个简短的 C 程序时,我遇到了一些错误,我对正在发生的事情感到非常迷茫:
第一个给出这些错误:
Q3.c:在函数âsortâ中:
Q3.c:11:警告:函数“q_sort”的隐式声明
Q3.c:在顶层:
Q3.c:14:警告:âq_sortâ 的类型冲突
Q3.c:11:注意:之前的“q_sort”隐式声明在这里
Q3.c:在函数âmainâ中:
Q3.c:52:警告:函数“malloc”的隐式声明
Q3.c:52:警告:内置函数“malloc”的隐式声明不兼容
Q3.c:56:警告:函数ârandâ的隐式声明
相关代码部分:
void sort(int* number, int n){
/*Sort the given array number , of length n*/
q_sort(number, 0, (n - 1));
}
void q_sort(int* numbers, int left, int right)
{
int pivot, l_hold, r_hold;
l_hold = left;
r_hold = right;
pivot = numbers[left];
while (left < right)
{
while ((numbers[right] >= pivot) && (left < right))
right--;
if (left != right)
{
numbers[left] = numbers[right];
left++;
}
while ((numbers[left] <= pivot) && (left < right))
left++;
if (left != right)
{
numbers[right] = numbers[left];
right--;
}
}
numbers[left] = pivot;
pivot = left;
left = l_hold;
right = r_hold;
if (left < pivot)
q_sort(numbers, left, pivot-1);
if (right > pivot)
q_sort(numbers, pivot+1, right);
}
由于我的其他问题程序都使用相同的排序方法,并给出相同的错误,修复这个将解决所有问题。
编辑:一个额外的问题。我在另一个程序上收到此错误
Q5.c:在函数“sticky”中:
Q5.c:29:警告:指针和整数之间的比较
Q5.c:29:警告:与字符串文字比较会导致未指定的行为
在这部分代码中:
void sticky(char* word){
int i = 0;
/*Convert to sticky caps*/
while (word[i] !="\0"){ // line 29
if (i%2 == 0)
word[i] = toUpperCase(word[i]);
else
word[i] = toLowerCase(word[i]);
i++;
}
}