一道数组排序类型的题目,按照以下程序输入为什么无法运行?

原题:有一个已经排好序的数组,要求输入一个数后,按原来的排序规律将它插入数组中。
编写的程序如下:
#include <stdio.h>
int main()
{
	int a[10]={3,12,17,24,35,46,57,68,78,85};
	int i,j,m,t;
	printf("Please input a new number:m=\n");
	a[11]={3,12,17,24,35,46,57,68,78,85,m};
	for(i=0;i<11;i++)
		scanf("%d",&m);
	printf("\n");
	for(j=0;j<10;j++)
		for(i=0;i<10-j;i++)
			if(a[i]>a[i+1])
			{
				t=a[i];
				a[i]=a[i+1];
				a[i+1]=t;
			}
			printf("The sorted numbers are:\n");
			for(i=0;i<11;i++);
			printf("%d",a[i]);
			printf("\n");
			return 0;
}

整体的思想是想要先将新输入的数当成a[11]输入到数组中,构成一个新的11个数的数组,然后按照正常的冒泡排序的方法对数组中的11个数进行排序。但是在VC++6.0中显示有错误。求大神解答!

Rebellious_2016
浏览 1384回答 2
2回答

Yexiaomo

因为在开头定义时, 你已经指定了数组 a 的长度, 为 10但是下面你又 说 数组 a 的长度为 11, 所以编译器 会出错, 因为数组的长度在 定义时就确定了, 不能改变了

qq_浓嬷嬷_0

你的写法太强悍了
打开App,查看更多内容
随时随地看视频慕课网APP