原题链接:[编程入门]数组插入处理
解题思路:
首先是输入只含有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分
59 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include <stdio.h> int main() { int arr[10]={1,2,3,6,8,14,17,25,29}; int a,i,j,temp; scanf("%d",&arr[9]); for(i=0;i<9;i++) { for(j=i+1;j<10;j++) { if(arr[i]>arr[j]) { temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } for(i=0;i<10;i++) { printf("%d ",arr[i]); } return 0; }为什么显示错误?有没有大佬指点一下 #include <stdio.h> int main() { int arr[10] = { 1,12,13,16,21,25,66,88,100 }; scanf("%d", &arr[9]); for (int i=0;i<10;i++) for (int j = 0; j < 10 - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int tep = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tep; } } for (int j = 0; j < 10; j++) { printf("%d ", arr[j]); printf("\n"); } }@黄小橘 #include<stdio.h> int main() { int arr[9]={1,7,8,17,23,24,59,62,101}; int num; int i,pos; scanf("%d",&num); for(i=0;i<9;i++) { if(arr[i]>num) { pos=i; break; } } for(i=9;i>pos;i--) { arr[i]=arr[i-1]; } arr[pos]=num; for(i=0;i<10;i++) { printf("%d",arr[i]); } printf(" "); return 0; }#include<stdio.h> int main() { int save(int a[]); int a[10]={1,6,15,24,35,45,49,51,59}; int i; scanf("%d",&a[9]); save(a); for(i=0;i<10;i++) { printf("%d",a[i]); } return 0; } int save(int a[]) { int i,j,temp; for(i=0;i<9;i++) for(j=i+1;j<10;j++) { if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } } return a; }#include<stdio.h> int main() { int a[9],b,k; for(int i=0;i<9;i++) scanf("%d",&a[i]); scanf("%d",&b); for(int i=0;i<9;i++) { if(b>a[i]) printf("%d\n",a[i]); if(b<a[i]) { k=i; printf("%d\n",b); for(i=k;i<9;i++) printf("%d\n",a[i]); break; } } return 0; }#include<stdio.h> int main() { int i,j,x,tmp,a[10]={0}; for(i=0;i<9;i++) { scanf("%d",&a[i]); } scanf("%d",&x); a[9]=x; for(i=0;i<10;i++) { for(j=0;j<10-i-1;j++) { if(a[j]>a[j+1]) { tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; } } } for(i=0;i<10;i++) { printf("%d\n",a[i]); } return 0; }