我完成了我的问题集3 helpers.c程序,它完美地工作到总共10个干草堆但是当我在大海捞针少于10时按Control-D时停止工作。相反,程序会跳过一行,我可以像在一个无垫中一样自由地写。因为,它不能在干草堆中传递3或4,我的程序无法通过Check50。有没有人能解决这个问题?
如果您需要我的代码,请点击此处:
bool search(int value, int values[], int n)
{
if(value < 0)
{
return false;
}
for(int i = 0; i < n; i++)
{
if (value == values[i])
{
return true;
}
}
return false;
}
/**
* Sorts array of n values.
*/
void sort(int values[], int n)
{
bool tf;
do
{
tf = false;
for(int i=0; i < n-1; i++)
{
if(values[i] > values[i+1])
{
int temp = values[i];
values[i] = values[i+1];
values[i+1] = temp;
tf = true;
}
}
}
while(tf == false);
return;
}
答案 0 :(得分:0)
您的排序算法存在缺陷。它只需要整个阵列的一轮,并按顺序排列,但不完全。
您可以使用冒泡排序(请参阅https://en.wikipedia.org/wiki/Bubble_sort或cs50的讲座),但我不能提供代码,因为它违反了课程的荣誉代码。