中易网

C语言编程题目:数列有序!

答案:3  悬赏:20  
解决时间 2021-04-17 16:09
题目描述
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序。

输入描述
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。

输出描述
对于每个测试实例,输出插入新的元素后的数列。

输入样例
3 3
1 2 4
0 0

输出样例
1 2 3 4

以下是我编的,请问我应该在哪里插入可对这句话:“n和m同时为0标示输入数据的结束,本行不做处理”做出反应的代码???请高手指点!!!小女子感激不尽!!!另外,还有哪里能改正?

#include
int main()
{
int a[100];
int n,i,j,m,t1,t2,end;
scanf("%3d",&n);
scanf("%3d",&m);
for(i=0;i scanf("%3d",&a[i]);
//printf("%d",a[i]);
for(i=0;i{ if(a[i]>m)
{t1=a[i];
a[i]=m;
for(j=i+1;j {t2=a[j];
a[j]=t1;
t1=t2;
}

}
}

for(i=0;i<=n;i++)
printf("%3d",a[i]);
printf("\n");
return 0;
}
最佳答案
您好!很高兴为您解答。

程序改进如下,改动的行已注释:

#include
int main()
{
int a[100];
int n,m,i,j,t1,t2;
do//使用do while循环
{
scanf("%3d",&n);
scanf("%3d",&m);
for(i=0;i scanf("%3d",&a[i]);
for(i=0;i {
if(a[i]>m)
{
t1=a[i];
a[i]=m;
for(j=i+1;j {
t2=a[j];
a[j]=t1;
t1=t2;
}
}
}
for(i=0;i<=n;i++)
if(n!=0||m!=0) printf("%3d",a[i]);//此处加一个if语句,m、n非零才有输出
printf("\n");
}while(n!=0||m!=0);//判断,如n和m同时为0,标示输入数据的结束,此行不作处理
return 0;
}

望采纳~如您还有不解,欢迎追问~
全部回答
// s:~ #include <stdio.h> int main() {     int a[100], n, m, i;     while(1) {     scanf("%d%d", &n, &m);     if(n == 0 && m == 0)     break;     for(i = 0; i < n; ++i)     scanf("%d", a+i);     for(i = n-1; i >= 0 && a[i] > m; --i)     a[i+1] = a[i];     a[i+1] = m;     for(i = 0; i < n+1; ++i)     printf("%d ", a[i]);     putchar('\n');     }     return 0; }
#include  void main() {  int a[100];  int n1 = 0;  int n2 = 0;  int m1 = 0;  int m2 = 0;  int i = 0;  int j = 0;  bool firstLine = true;  while(true)  {   scanf("%d %d", &n1, &m1);   if(firstLine)   {    n2 = n1;    m2 = m1;   }   firstLine = false;   for(i = 0; i < n1; i++)   {    scanf("%d", &a[i]);   }   if(n1 == 0 && m1 == 0)    break;  }  a[n2] = m2;  for(i = 0; i < n2 + 1; i++)   for(j = i; j < n2 + 1; j++)    if(a[i] > a[j])    {     a[i] = a[i] ^ a[j];     a[j] = a[i] ^ a[j];     a[i] = a[i] ^ a[j];    }  for(i = 0; i < n2 + 1; i++)   printf("%d ", a[i]);  printf("\n"); }  欢迎交流
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
御寿堂NO.YS00104在哪里啊,我有事要去这个地
电子表的辐射是多少?
索爱W395有没自动对焦?照片照出来有没有诺基
青云的点要怎样加才好呢?
2017年退休工人还会涨工资吗
七星阵需要消磁吗?
怎么能打通国际海事卫星电话
我的高考分数没有到本省的二本线但是到了其他
无产阶级成为统治阶级后还是无产阶级吗
海贼王243集片头曲叫什么名字!~~
怎么样的才算爱
幼儿园有必要开校讯通吗?(移动公司的)
不知道自己怀孕不小心喝了秀身堂葡萄籽会怎么
我是吉林考生高考考了381分 报了白城师范会计
关于侯马市和临汾市的不解
推荐资讯
鬼泣1和2的电影版哪有?给个地址
为什么我的一弯腿膝盖疼
如何成功养殖三文鱼
上海户口办理去韩国的签证需要哪些材料?
LG那款红色渐变色的手机是什么型号?
红河州河口县有哪些私立学校
去怀柔县城在那里下车
请问广州艾尼斯美发学校怎么样?不知道是不是
福建省莆田市涵江区白塘镇卓坡路邮编是什么?
一学期的初中同学算什么?
谁有。夺标。的百度云。最好是高清谢谢
在收拾房间的时候在床上发现一根不属于自己的
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?