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

    评论

报告相同问题?

悬赏问题

  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器