原题链接:[编程入门]数组插入处理
0.0分
46 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
0.0分
46 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
不错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];//@三拾 }} 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; }#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发现个问题,当输入的值大于101的时候,值是排序在倒数第二,i需要小于等于9 for(i=0;i<=9;i++) { if(a[i]>=n) { c=i; break; } }#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; }#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; }#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 的数 }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]) ;@努力的小码农 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]) ;