C语言实验题 数列有序!描述有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序. 输入输入数据包含多个测试实例,每组数据

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 12:59:51
C语言实验题 数列有序!描述有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序.  输入输入数据包含多个测试实例,每组数据

C语言实验题 数列有序!描述有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序. 输入输入数据包含多个测试实例,每组数据
C语言实验题 数列有序!

描述

有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序. 

 

输入

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

输出

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

样例输入

3 3

1 2 4

0 0

样例输出

1 2 3 4

我自己的编码如下:

#include<stdio.h>

int main()

{

 int m,n,i,a[1000],t,j;

 while(scanf("%d %d",&n,&m),n!=0||m!=0)

 {

  for(i=1;i<=n;i++)

  {

   scanf("%d",&a[i]);

  }

  if(m>=a[n]) 

  {

   printf("%d",a[1]);

   for(i=2;i<=n;i++) printf(" %d",a[i]);

   printf(" %d\n",m);

  }

  else if(m<=a[1]) 

   {

    printf("%d",m);

    for(i=1;i<=n;i++) printf(" %d\n",a[i]);

   }

  else 

  {

   for(i=1;i<=n;i++)

   {

    if(m<=a[i]) t=i;

   }

  for(i=1;i<t;i++) printf("%d ",a[i]);

  printf("%d ",m);

  for(t=i;t<n;t++) printf("%d ",a[t]);

  printf("%d\n",a[n]);

  } 

 }

}

我的思路就是先进行判断,如果是前面两种情况的话,就先输出.如果不是的话,那m肯定是在这个数列的中间,然后根据我的代码进行输出.可是,如图:

 

第一个图的数据是3 3,输出完全正确;第二个是6 8,但是由于数列的最后三个数据不同,后面那个竟然错了.本人看了许久,看不出来错在哪里,求大神指教.谢谢!

 

 


C语言实验题 数列有序!描述有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序. 输入输入数据包含多个测试实例,每组数据
/*#include
int main()
{
void print(float*x,int n);
void change(float*x,int k);
int k = 5;
float float_a[10] = {1.2,4.5,58.9,2.1,3.6,5.6,8.4,9.6,73.4,87.0};
printf("原始的数列:\n");
print(float_a,10);
change(float_a,k);//把前五个数据置0
printf("前%d个数据置0后的数列:\n",k);
print(float_a,10);
return 0;
}
void print(float*x,int n)
{
for(int i =0; i < n; i++)
printf("%f ",x[i]);
printf("\n");
}
void change(float*x,int k)
{
for(int i =0; i < k; i++)
x[i] = 0;
}
*/
#include
int main()
{
int m,n,i,a[1000] ={0},t,j;
while(scanf("%d %d",&n,&m),n!=0||m!=0)
{
for(i=1;i=a[n])
{
printf("%d",a[1]);
for(i=2;i

C语言实验题 数列有序!描述有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数m,请将该数插入到序列中,并使新的序列仍然有序. 输入输入数据包含多个测试实例,每组数据 C语言实验题 绝对值排序描述输入n(n 数组 数列有序!有n(n C语言编程题:数列计算 小弟感激不尽!数列计算 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B 试题描述有数列定义如下:f(1)=f(2)=1,f(n)=f(n-1)+f(n-2)(n>=3)请计算数列 C语言 数字交换描述 输入n(n c语言题:输入n(n 用C语言求斐波那契数列第n项? C语言提问,3716--数列求和描述求数列1 2 4 7 11 16 22……的前n个数之和.输入输入数据有多组,每组占一行.输入数据为一个整数n,0 c语言 定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值.编程输出该平均值序列.有一个长度为n(n c语言打印杨辉三角描述 由键盘输入正数n(n C语言 下列叙述中正确的是?A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n的有序链表进行 C语言题目一道求改错/*问题描述给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个.输入格式第一行包含一个整数n.第二行包含n个非负整数,为给定的数列,数列中的每个数都 C语言中n C语言 (m+n)!’ C语言 if(n C语言n C语言 请问n++ C++ 有N个数 已按从小到大顺序排列 输入一个数 把它插入原有数列 使仍有序 输出新数列