【问题标题】:Insertion sort program, no output插入排序程序,无输出
【发布时间】: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 55 5 4 3 2 15 8 4 1 5 1 进行测试,对于所有这些人来说,这个程序似乎在 Wandbox 上运行良好。你能提供你的意见吗?
  • printf ("%d ", array[i]); 在每个数字后打印一个空格
  • 程序正常工作(MSVC),添加一个空格如上注释。
  • 为什么加空格会显示输出?我会建议在末尾添加一个换行符。所有数字之间没有分隔符的事实在这里应该没有区别。
  • 可能你的标准输出已关闭或内部的东西,因为代码对我有用

标签: c insertion


【解决方案1】:

这是令人困惑的时刻之一 :) 我忘记有一个 '\n' 字符 在第二个 printf 中,之后用户是 提示输入列表。因此,我一直在打字 一行中的数字,无需按 ENTER;当然, 该程序认为,作为一个数字,只有一个整数 不是列表)))谢谢大家的回复。 对此感到抱歉。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 2016-03-03
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多