【发布时间】:2015-10-25 09:25:39
【问题描述】:
这是最简单的插入排序程序。 不幸的是,它没有提供结果: 它确实提示用户输入数组的大小 对于数字列表,但它没有 排序。非常感谢您的帮助!
/** Insertion sort **/
#include <stdio.h>
int main (void)
{
int size, array[80], i, j, element;
printf("Enter number of elements: \n");
scanf ("%d", &size);
printf("Enter %d integers\n", size);
for (i = 0; i < size; i++)
{
scanf("%d", &array[i]);
}
for (i = 0; i < size; i++)
{
element = array[i];
j = i;
while (j > 0 && array[j-1] > element)
{
array[j] = array[j-1];
array[j-1] = element;
j--;
}
}
printf ("Sorted list in ascending order:\n");
for (i = 0; i < size; i++)
printf ("%d", array[i]);
return 0;
}
【问题讨论】:
-
使用输入
5 1 2 3 4 5、5 5 4 3 2 1和5 8 4 1 5 1进行测试,对于所有这些人来说,这个程序似乎在 Wandbox 上运行良好。你能提供你的意见吗? -
printf ("%d ", array[i]);在每个数字后打印一个空格 -
程序正常工作(MSVC),添加一个空格如上注释。
-
为什么加空格会显示输出?我会建议在末尾添加一个换行符。所有数字之间没有分隔符的事实在这里应该没有区别。
-
可能你的标准输出已关闭或内部的东西,因为代码对我有用