c++编程:向一组从小到大排序的数据中插入新的数据,并从小到大排序,我的程序哪里有问题吗

程序如图,开头和最后的输出数据没有拍下来,这是中间的内容,不知道有什么问题,但测试的时候每次输入一个最小的数,输出是正确的,输入中间的数就会出现这种问题
#include<iostream>
using namespace std;
int main()
{
int c[100] = { 23,35,110,145,207 };
int n, i,x,j,pos=0,last=4,a;
for (n = 1; n <= 95; n++)
{
cout << "请输入第" << n << "个数:";
cin >> x;
for (i = 0; i <= 3 + n; i++)
{
if (x < c[i])
{
for (j = last; j >= pos; j--)
{
c[j + 1] = c[j];
}
c[i] = x;
last++;
pos = 0;
}
else
{
pos++;
}
break;
}
cout << "新的顺序是:";
for (a = 0; a <= 4 + n; a++)
{
cout << c[a] << ' ';
}
cout << endl;
}
return 0;
}

应该把这句break;放到箭头所指的if代码段中的最后,也就是pos=0;的后面。

逻辑问题。你现在的break;的语句导致了你的内部这个for循环只能循环一次,然后就break退出循环了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-11-22
代码不能贴上去,图看死人
相似回答