#include<iostream>
using namespace std;
int main()
{
int i;
int n, a[1000];
cin >> n;
//输入n个数
for (i = 0; i < 1000; i++)
{
cin >> a[i];
}
//冒泡不断比较相邻两个数
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1; j++)
{
if (a[j - 1] > a[j])
{
int temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
}
//依次输出
for (int i = 0; i < n - 1; i++)
{
cout << a[i] << endl;
}
return 0;
}
现在碰到的问题是当我运行以后,发现只能输入数字,但不会进行排序。
6 个解决方案
#1
for (i = 0; i < 1000; i++)
{
cin >> a[i];
}
你这个数要输入1000个数才进行排序啊,你把1000改成n。
#2
#include<iostream>
using namespace std;
int main()
{
int i;
int n, a[1000];
cin >> n;
//输入n个数
n=n+1;
for (i = 0; i < n-1; i++)
{
cin >> a[i];
}
//冒泡不断比较相邻两个数
for (int i = 0; i < n-1 ; i++)
{
for (int j = 0; j < n - 1; j++)
{
if (a[j - 1] > a[j])
{
int temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
}
//依次输出
for (int i = 0; i < n-1; i++)
{
cout << a[i] << endl;
}
return 0;
}
稍微改了一下,你可以看看。
#3
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
#4
你这个排序会越界啊,当j =0的时候,访问 j - 1就越界了
#5
用srand、rand函数随机生成1000个数(避免手动输入),然后排序。
#6
你的j的初始值应该是1,不然的话你就只能比较j和j+1的值了。
#1
for (i = 0; i < 1000; i++)
{
cin >> a[i];
}
你这个数要输入1000个数才进行排序啊,你把1000改成n。
#2
#include<iostream>
using namespace std;
int main()
{
int i;
int n, a[1000];
cin >> n;
//输入n个数
n=n+1;
for (i = 0; i < n-1; i++)
{
cin >> a[i];
}
//冒泡不断比较相邻两个数
for (int i = 0; i < n-1 ; i++)
{
for (int j = 0; j < n - 1; j++)
{
if (a[j - 1] > a[j])
{
int temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
}
//依次输出
for (int i = 0; i < n-1; i++)
{
cout << a[i] << endl;
}
return 0;
}
稍微改了一下,你可以看看。
#3
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。
#4
你这个排序会越界啊,当j =0的时候,访问 j - 1就越界了
#5
用srand、rand函数随机生成1000个数(避免手动输入),然后排序。
#6
你的j的初始值应该是1,不然的话你就只能比较j和j+1的值了。