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;
    }
    }

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?