【发布时间】:2015-08-13 18:21:54
【问题描述】:
我正在编写一个程序,它从客户端接收一些数字,然后使用冒泡排序功能对它们进行排序,另一个功能从客户端接收一个数字,然后使用二进制搜索功能在另一个数字之间进行搜索。请告诉我什么这个程序的问题是什么?
#include <stdio.h>
int bobsort (int);
int searchi (int);
void main ()
{
int num, i;
printf ("Enter Count Number \n");
scanf ("%d", &num);
int array[num];
for (i = 1; i <= num; i++) {
printf ("Enter Number %d \n", i);
scanf ("%d", &array[i - 1]);
}
bobsort (num);
searchi (num);
getch ();
//return 0;
}
//**** function bobsort
void bobsort (int n)
{
int c, d, swap;
for (c = 0; c < (n - 1); c++) {
for (d = 0; d < n - c - 1; d++) {
if (array[d] > array[d + 1]) { /* For decreasing order use < */
swap = array[d];
array[d] = array[d + 1];
array[d + 1] = swap;
}
}
}
printf ("Sorted list in ascending order:\n");
for (c = 0; c < n; c++)
printf ("%d\n", array[c]);
// return 0;
}
//**** function search
int searchi ()
{
int c, first, last, middle, n, search;
printf ("Enter value to find\n");
scanf ("%d", &search);
first = 0;
last = n - 1;
middle = (first + last) / 2;
while (first <= last) {
if (array[middle] < search)
first = middle + 1;
else if (array[middle] == search) {
printf ("%d found at location %d.\n", search, middle + 1);
break;
} else
last = middle - 1;
middle = (first + last) / 2;
}
if (first > last)
printf ("Not found! %d is not present in the list.\n", search);
return 0;
}
【问题讨论】:
-
欢迎来到 StackOverflow。请拨打tour。特别是,您需要更详细地描述您的问题。例如,样本输入、预期输出和实际输出。描述您如何尝试自己调试以及从调试中收集了哪些数据也是一种很好的形式。最后,问一个具体的问题,而不仅仅是一个笼统的“它不起作用,有什么问题?”。
标签: c arrays sorting search bubble-sort