【发布时间】:2015-04-23 06:09:44
【问题描述】:
如何删除这个错误尝试了一切...... 这个程序是关于从一个数组中找到 5 个最接近的数字...... 在主要部分,我只是简单地获取数组、数字和大小并通过函数
void printclosest(int arr[], int x, int n)
{
int diff[30];
int i,j,k,p,a;
for (i = 0; i < n; ++i)
{
for (j = i + 1; j < n; ++j)
{
if (arr[i] > arr[j])
{
a = arr[i];
arr[i] = arr[j];
arr[j] = a;
}
}
}
for(i=0;i<n;i++)
{
diff[i]=abs(a[i]-x);
}
for (k = 0; k < n; ++k)
{
for (p = k + 1; p < n; ++p)
{
if (diff[k] > diff[p])
{
a = arr[k];
arr[k] = arr[p];
arr[p] = a;
}
}
}
for(i=0;i<5;i++)
{ printf("%d",arr[i]);
}
}
【问题讨论】:
-
发布错误时请附上行号!
-
请提供更多关于您期望发生的事情的详细信息。请正确格式化您的代码。
-
首先,请格式化您的代码,使其可读。其次,编译器应该告诉你错误在哪一行。这是什么线?
-
@Martze 给你一个 N 个数字和一个数字 Num 的排序列表。编写一个程序,找出与 Num 最接近(在数值上)的五个数字。如果 |Num-x|,则数组中的数字 x 最接近 Num是所有可能的 x 中最小的。注意:如果 Num 存在于给定列表中,那么它应该在输出中。