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".我不知道为什么.
我修正了其他人提到并添加的拼写错误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)
希望它也适合你。