点赞(0)
 

0.0分

46 人评分

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

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

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

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

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

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

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

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

评论列表 共有 16 条评论

阿七 3年前 回复TA
@阿七 #include<stdio.h> int main() { 	int a[10],i,n,m; 	int *p=a;   for(i=0;i<9;i++) 	{         scanf("%d",&a[i]);     } 	scanf("%d",&n); 	for(i=0;i<9;i++) 	{ 		if(a[i]!=a[i+1]&&a[i]<a[i+1]) 		{ 			if(a[i]>n&&n>a[i-1]) 			{ 				m=i; 			} 		} 	} 	for(i=10;i>m;i--) 	{ 		*(p+(i-1))=a[i-2]; 	} 	*(p+m)=n; 	for(i=0;i<10;i++) 	{ 		printf("%d
",a[i]); 	} }我的指针法为什么提交不通过,求大神指点。谢谢
努力的小码农 3年前 回复TA
你这个c的话  当原有序列中没有比输入的n大的数据时  c是没有值的 会存在潜在的错误   可以将初始值定义位9  没找到比n大的数时c为9  找到了 就替换
慕杨公子 3年前 回复TA
#include <stdio.h>
int main(){
	int a[10],i;
	scanf("%d%d%d%d%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8]);
	int n;
	scanf("%d",&n);
	int j,count;
	for(j=0;j<9;j++){
		if((n>a[j])&&(n<a[j+1])){
		count=j;	
		}	
	}
	int c;
	for(c=9;c>count+1;c--){
		a[c]=a[c-1];
	}
	a[count+1]=n;
	int d;
	for(d=0;d<10;d++){
		printf("%d\n",a[d]);
	}
	return 0;
		
}
慕杨公子 3年前 回复TA
你第二个for循环从9开始就可以了
阿七 3年前 回复TA
只有从小到大才能用 从大到小就不能用了
Kohler 3年前 回复TA
#include <stdio.h>
int main(){
	int a[10],i;
	scanf("%d%d%d%d%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8]);
	int n;
	scanf("%d",&n);
	int j,count;
	for(j=0;j<9;j++){
		if((n>a[j])&&(n<a[j+1])){
		count=j;	
		}	
	}
	int c;
	for(c=10;c>count+1;c--){
		a[c]=a[c-1];
	}
	a[count+1]=n;
	int d;
	for(d=0;d<10;d++){
		printf("%d\n",a[d]);
	}
	return 0;
		
}

自己运行没毛病,为什么提交显示错误?