FLY


私信TA

用户名:dotcpp0680047

访问量:8442

签 名:

等  级
排  名 2130
经  验 2438
参赛次数 0
文章发表 9
年  龄 20
在职情况 学生
学  校 auu
专  业 计科

  自我简介:

解题思路:

首先是输入只含有9个元素的数组a[10],用for循环依次输入。接着输入插入的数字m,将m与数组元素比较。

1、当m<=a[0]时,记录t=0;

2、当m>=a[8]时,记录9;

3、当a[i]<=x<=a[i+1]时,记录x应该插入的位置t=i+1。

但是插入m之前要把元素往后移位,从后往前直到位置t,最后把m赋值给a[t],用for循环输出排好的a[10]。
注意事项:1、找插入位置时注意break退出遍历循环,不然就会出错误;

                2、移位从后往前,不然从前往后会使数据丢失。

参考代码:

#include<stdio.h>
int main()
{
    int a[10],i,m,t;
    for(i=0;i<9;i++)
    {
	scanf("%d",&a[i]);
    }
a[9]=0;
    scanf("%d",&m);
    if(m<=a[0])
        t=0;
    if(m>=a[8])
        t=9;
    for(i=0;i<9;i++)
    {
        if(m>=a[i]&&m<=a[i+1])
        {
            t=i+1;
            break;
        }
    }
    for(i=9;i>t;i--)
    {
        a[i]=a[i-1];
    }
    a[t]=m;
    for(i=0;i<10;i++)
    {
        printf("%d",a[i]);
        printf("\n");
    }
	return 0;
}


 

0.0分

70 人评分

  评论区

#include<stdio.h>
int main()
{   int i,n,pos;
	int arr[10];
	for(i=0;i<=8;i++)
	{
		scanf("%d",&arr[i]);
	}
//	printf("请输入需要插入的数字");
	scanf("%d",&n);
	for(i=0;i<=8;i++)
	{
		if(n>arr[i]&&n<arr[i+1])
		{	
			pos=i+1;
			break;	
		}
	}
	for(i=8;i>=pos;i--)
	{
		arr[i+1]=arr[i];
	}
	arr[pos]=n;
	printf("插入后的数组为\n");
	for(i=0;i<10;i++)
	{
		printf("%d\n",arr[i]);
	}
	return 0;
}这个为啥会错啊
2024-09-30 10:46:19
我这个更加容易懂
#include<stdio.h>
int main()
{
    int a[10],b[10],i,c;
    for(i=0;i<9;i++)
        scanf("%d",&a[i]);
    scanf("%d",&c);
    for(i=0;i<9;i++)
    {
        if(a[i]<c)
            b[i]=a[i];
        if(a[i]>=c)
        {
            b[i]=c;
            c=a[i];
        }
    }
    b[i]=c;
    for(i=0;i<10;i++)
        printf("%d\n",b[i]);
}
2024-08-14 22:32:29
#include<stdio.h>
int main()
{
    int a[10],i;
    a[9]=0;
    for(i=0;i<9;i++)
    {
        scanf("%d",&a[i]);
    }
    int m,t;
    scanf("%d",&m);
    if(m<a[0])
    {
        t=0;
    }

    if(m>a[8])
    {
        t=9;
    }
    for(i=0;i<8;i++)
    {
        if(m>=a[i]&&m<=a[i+1])
        {
            t=i+1;
        }
    }
    for(i=9;i>t-1;i--)
    {
        a[i]=a[i-1];
    }
    a[t]=m;
    for(i=0;i<10;i++)
    {
        printf("%d\n",a[i]);
    }
    return 0;
}
2024-08-06 16:05:37
我这不是更简单,哪有那么复杂。
#include<stdio.h>
int main(int argc,char *argv[])
{
	int a[9],b,i,c[9],s=0;
	for(i = 0;i<9;i++){
		scanf("%d",&a[i]);
		}
	scanf("%d",&b);
	for(i = 0;i<9;i++){
		if (b >a[i]){
			s++;
			}
		}
	for(i=0;i<9;i++){
		c[i] = a[i];
		}
	a[s] = b; 
	for(i = s+1;i<10;i++){
		a[i] = c[i-1];
		}
	
	for(i = 0;i<10;i++){
		printf("%d\n",a[i]);
		}
	return 0;
}
2024-04-28 15:26:27
#include<stdio.h>
int main()
{
	int a[10],i,t,n;
	for(i=0;i<9;i++)
	   {scanf("%d",&a[i]);}
	a[9]=0;
	scanf("%d",&n);
	for(i=0;i<10;i++)
	   {if(a[i]>n)
	      {t=i;break;}
	   }
    if(i==9)
       a[9]=n;
    else
      {for(i=9;i>8-t;i--)
          a[i]=a[i-1];
          a[t]=n;
	  }
	for(i=0;i<10;i++)
	 printf("%d\n",a[i]);
  return 0;	
 }
哪位大佬帮我看看,有什么问题,0分
2024-04-02 19:41:10
#include<stdio.h>
int main()
{
    int a[10];
    for(int i=0;i<9;i++){
        scanf("%d",&a[i]);
    }
    a[9]=0;
    int x;
    scanf("%d",&x);
    if(x<=a[0]){
        for(int i=9;i>0;i--){
            a[i]=a[i-1];
        }
        a[0]=x;
    }
    else if(x>=a[8]){
        a[9]=x;
    }
    else{
        for(int i=0;i<8;i++){
            if(x>=a[i]&&x<=a[i+1]){
                for(int j=8;j>i;j--){
                    a[j+1]=a[j];
                }
                a[i+1]=x;
                break;//很重要!!!
            }
        }
    }
    for(int i=0;i<10;i++){
        printf("%d\n",a[i
2024-03-04 18:17:21
#include<stdio.h>
int main()
{       int i,j,temp;
        int arr[10]={1,7,8,17,23,24,59,62,101};
        scanf("%d",&arr[9]);
        for(i=0;i<9;i++)
        {
            for(j=0;j<9-i;j++)
            {
                if(arr[j]>arr[j+1])
               { temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;}
            }
        }
        
       for(i=0;i<10;i++)
       {printf("%d\n",arr[i]);}
	return 0;
}
2024-01-22 12:33:56
#include<stdio.h>
int main()
{
	int x[9];
	int i,j;
	int a,t=0;
	for(i=0;i<9;i++)
	{
		scanf("%d",&x[i]);
	}
	scanf("%d",&a);
	for(j=0;j<9;j++)
	{
		if(a<x[j])
		{
			t=x[j];
			x[j]=a;
			a=t;
		}
		printf("%d\n",x[j]);
	}
	printf("%d\n",a);
	return 0;
}
2024-01-19 20:59:06