appxsl 2014-10-09 09:18 采纳率: 0%
浏览 1865

初级 C++ 学习者来求教,编程中排序题目遇到的问题,求解答

题目是用选择法对10个整数进行由小到大排序。

我的编程是:
#include
using namespace std;
int main()
{
void select_sort(int array[], int n);
int a[10], i;
cout << "输入原始数组:" << endl;
for (i = 0; i < 10; i++)
cin >> a[i];
cout << endl;
select_sort(a, 10);
cout << "排序好的数组:" << endl;
for (i = 0; i < 10; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
void select_sort(int array[], int n)
{
int i, j, t;
for (i = 0; i < 10; i++)
{
for (j = i + 1; j < n;j++)
if (array[j] < array[i])
t = array[j]; array[j] = array[i]; array[i] = t;
}
}

参考答案给的编程:
#include
using namespace std;
int main()
{
void select_sort(int array[], int n);
int a[10], i;
cout << "输入原始数组:" << endl;
for (i = 0; i < 10; i++)
cin >> a[i];
cout << endl;
select_sort(a, 10);
cout << "排序好的数组:" << endl;
for (i = 0; i < 10; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
void select_sort(int array[], int n)
{
int i, j,k, t;
for (i = 0; i < 10; i++)
{
k = i;
for (j = i + 1; j < n;j++)
if (array[j] < array[i])
k = j;
t = array[k]; array[k] = array[i]; array[i] = t;
}
}

 不同点在于加粗斜体标记的地方。我的编程没有设置变量K,但是答案设置了。我个人觉得有没有K都无所谓啊,但是实际运行我的是错误的,答案是正确的。我很想知道这个K起到什么作用?为什么非要弄个K呢?求大神的详细解答啊
  • 写回答

1条回答

  • pandaPwn 2014-10-09 13:09
    关注

    答案给的也不对

    #include
    using namespace std;
    int main()
    {
    void select_sort(int array[], int n);
    int a[10], i;
    cout << "输入原始数组:" << endl;
    for (i = 0; i < 10; i++)
    cin >> a[i];
    cout << endl;
    select_sort(a, 10);
    cout << "排序好的数组:" << endl;
    for (i = 0; i < 10; i++)
    cout << a[i] << " ";
    cout << endl;
    return 0;
    }
    void select_sort(int array[], int n)
    {
    int i, j,k, t;
    for (i = 0; i < 10; i++)
    {
    k = i;
    for (j = i + 1; j < n;j++)
    ///if (array[j] < array[i]) 这里应该是把array[i]该为array[k]的
    k = j;
    t = array[k]; array[k] = array[i]; array[i] = t;
    }
    }

    若是LZ没有使用k变量,那么应该是
    for(j=i+1;j<n;j++)
    {
    for(array[j]<array[i])
    {
    t = array[j]; array[j] = array[i]; array[i] = t;
    }
    }

    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮