点赞(0)
 

0.0分

46 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 16 条评论

Yolo 1年前 回复TA
不错int main()
//{
//	int a[10] = { 0 };
//	int n = 0;//需要插入的数
//	int i = 0;
//	// 为了方便解释,这里把for循环的范围改成了0到8,这样数组中就只有9个元素
//	for (int i = 0; i < 9; i++)//这样1大小为10的数组就有了九个元素
//	{
//		scanf("%d\n", &a[i]);
//	}
//	scanf("%d", &n);
//	//三种情况
//	//1.当n > a[8]时
//	//将n存储在a[9]中
//
//	if (n >= a[8])
//	{
//		a[9] = n;
//	}
//	//2.当n < arr1[0]时
////将n存储在a[0]中,原有排序依次向后移一位
//	
//	//其他情况
//	//  3.在数组a中找到一个位置,使得n插入后仍保持升序的排列方式,
//	//    把比n大的元素都向后移动一个位置,然后把n插入到合适的位置	
//	
//	
//	
//	else
//	{   
//		for (i = 8; i >= 0; i--)//从数组末尾开始向前遍历,最后一个元素是空的,so是i=8
//		{
//			if (n <= a[i])
//			{
//				a[i + 1] = a[i];//
三拾 1年前 回复TA
@三拾 }}     else     {   for(i=0;i<=num-2;i++){             if(!bf)                 if(str[num]>str[i+1]||str[0]<str[num])                 {                     bf=1;                     c=i+1;                 }             if(bf)             {                 str[num-j]=str[num-j-1];                 j++;             }         }         if(bf) {             str[c] = a;         }     }  }  int main() {      int str[10];     int i;     for(i=0;i<9;i++)     {         scanf("%d",&str[i]);     }     scanf("%d",&str[i]); //    printf("i==%d
",i);     swap(str,i);     for(i=0;i<=9;i++)     {         printf("%d
",str[i]);     }     return 0; }
三拾 1年前 回复TA
#include<stdio.h>
void swap(int *str,int num)//
{
    int i,j=0,bf=0,a=str[num],c;
//    printf("a==%d",a);
    if(str[0]<=str[8]){
        for(i=0;i<=num-2;i++){
            if(!bf)
                if(str[num]<str[i+1]||str[0]>str[num])
               {
                   bf=1;
                   c=i+1;
//                   printf("下标==%d",str[num]);
               }
            if(bf)
            {
                str[num-j]=str[num-j-1];
                j++;
            }
        }

        if(bf) {
        str[c] = a;
//        printf("%d=====%d\n",str[num],str[str[num]]);
    }}
    else
路边拾光 2年前 回复TA
发现个问题,当输入的值大于101的时候,值是排序在倒数第二,i需要小于等于9
for(i=0;i<=9;i++)
    {
        if(a[i]>=n)
        {
            c=i;
            break;
        }    
    }
耗子MOUSE123 2年前 回复TA
#include <stdio.h>

int main()
{
	int a[10];
	int i,j;
	printf("请输入已经正序排序好的9个数:");
	for(i=0;i<9;i++)
	{
		scanf("%d",&a[i]);
	}
	printf("请输入要插入的数值:");
	scanf("%d",&a[9]);
	for(i=9;i>0;i--)
	{
		if(a[i-1]>a[i])
		{
			j=a[i];
			a[i]=a[i-1];
			a[i-1]=j;
		}
		else 
		{
			break;
		}
	}
	printf("排序后的数值为:\n");
	for(i=0;i<10;i++)
	{
		printf("%d ",a[i]);
	}
	printf("\n");
	return 0;
}
梦魔 2年前 回复TA
#include<stdio.h>

int main(void){
	int a[10], i;
	for(i=0;i<9;i++){
		scanf("%d", &a[i]);
	}
	int num;
	scanf("%d", &num);
	for(i=8;i>0;i--){
		if(num > a[i]){
			a[i+1]=num;
			
		
			break;
		}
		a[i+1] = a[i];
	}
	for(i=0;i<10;i++){
		printf("%d\n", a[i]);
	}
	return 0;
}
顶级程序员 2年前 回复TA
@夢 为什么第二个for循环中的判断条件不可以是x<=a[i]
3年前 回复TA
#include <stdio.h>
int main ()
  {
  	int a[] = {1,25,46,78,100,102,471,};// 已知的数组 可以改成用户输入
  	int n = sizeof a / sizeof a[0] ;    // 获取数组的大小 
  	int x , i = 0 ;
  	
	scanf ("%d", &x) ;					// 输入 x  
  	for ( ; x > a[i] && i != n ; i++)  
  		printf ("%d ", a[i]) ; 			//输出小于 x 的数 
  		
	printf ("%d ", x) ;        			//输出 x 
	
	for ( ; i < n ; i++ )
		printf ("%d ", a[i]) ;  		//输出大于 x 的数 
	
		
 		
  }
3年前 回复TA
int main ()
  {
  	int a[] = {1,25,46,78,100,102,471,};
  	int b[7] ;
  	int n = sizeof a / sizeof a[0] ; 
  	int x , i = 0 ;
  	scanf ("%d", &x) ;
  	for ( ; x > a[i] && i != n ; i++)
  		printf ("%d ", a[i]) ;
	printf ("%d ", x) ;
	for ( ; i < n ; i++ )
		printf ("%d ", a[i]) ;
3年前 回复TA
@努力的小码农 int main ()   {   	int a[] = {1,25,46,78,100,102,471,};   	int b[7] ;   	int n = sizeof a / sizeof a[0] ;    	int x , i = 0 ;   	scanf ("%d", &x) ;   	for ( ; x > a[i] && i != n ; i++)   		printf ("%d ", a[i]) ; 	printf ("%d ", x) ; 	for ( ; i < n ; i++ ) 		printf ("%d ", a[i]) ;