bubble中的冒泡排序和getchar

Kor*_*gan 5 c++ sorting getchar

我正在使用microsoft visual studio 2012并尝试进行冒泡排序.这是我的代码:

#include "stdafx.h"
#include "String.h"
#include <iostream>
#include <string.h>
using namespace std;

int main()
{
    int array[100], n, c, d, swap;
    printf("enter numbers of elements\n");
    scanf_s("%d",&n);
    printf("enter %d integers\n", n);
    for (c = 0; c < n; c++){
        scanf_s("%d", array);
    }
    for (c = 0; c < (n - 1); c++)
    {
        for (d = 0; d < n - c - 1; d++)
        {
            if (array[d]>array[d + 1]){
                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]);
    }
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

首先,我无法让关键词输入控制台.getchar()似乎没有工作,但我没有任何错误.另外,当我看到控制台一秒钟时,我可以说数字被列为"-310892".我不知道为什么.

ban*_*ace 0

我修正了其他人提到并添加的拼写错误system("pause")。我在 VS 2010 上工作得很好。还没有访问 VS 2012 来测试它。这是你的代码:

#include <string.h>
#include <stdio.h>

    int main()
    {
        int array[100], n, c, d, swap;

        printf("enter numbers of elements\n");
        scanf("%d",&n);
        printf("enter %d integers\n", n);

        for (c = 0; c < n; c++){
            scanf("%d", &array[c]);
        }

        for (c = 0; c < (n - 1); c++)
        {
            for (d = 0; d < n - c - 1; d++)
            {
                if (array[d]>array[d + 1]){
                    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]);
        }

        system("pause"); // <---- Added this!!!

        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

希望它也适合你。