下面是我在C++中实现的计数排序代码:
#include<iostream>
#include<stdlib.h>
using namespace std;
void counting_sort(int [], int, int);
main()
{
int n,k = 0, a[15];
cout << "Enter the number of input: ";
cin >> n;
cout << "\nEnter the elements to be sorted: \n";
for ( int i = 1; i <= n; i++)
{
cin >> a[i];
if(a[i] > k)
{
k = a[i];
}
}
counting_sort(a, k, n);
system("pause");
//getch();
}
void counting_sort(int a[], int k, int n)
{
int i, j;
int b[15], c[100];
for(i = 0; i <= k; i++)
c[i] = 0;
for(j =1; j <= n; j++)
c[a[j]] = c[a[j]] + 1;
for(i = 1; i <= k; i++)
c[i] = c[i] + c[i-1];
for(j = n; j >= 1; j--)
{
b[c[a[j]]] = a[j];
c[a[j]] = c[a[j]] - 1;
}
cout << "\nThe Sorted array is: ";
for(i = 1; i <= n; i++)
cout << b[i] << " " ;
}在第3行Col 1中,编译时出现了一个错误,即“程序中的杂散\1”,我在开发-C++和艾德龙上尝试过。两者显示相同的错误。我还试图将代码复制到一个新文件中,但没有成功。我该怎么纠正呢?
发布于 2015-03-13 10:54:14
您的代码(第3行)中有一个(隐藏的)无效字符,它与http://ideone.com/ALbZbr上的代码一起复制。
试着编辑这段代码。您将在第三行看到一个红色点(无效字符)。
#include<iostream>
#include<stdlib.h>
using namespace std; . <--
void counting_sort(int [], int, int);
main()
{删除此无效字符,您的代码最终将运行。
https://stackoverflow.com/questions/29029993
复制相似问题