main()
{
int a[10]
int i,m,t,j=0
printf("请输入10个整数\n")
for(i=0i<10i++)
scanf("%d",&a[i])
m=a[0]
for(i=0i<10i++)
{
if(a[i]<m)
{
m=a[i]
j=i}
}
t=a[0]
a[0]=m
a[j]=t
for(i=0i<10i++)
printf("%d ",a[i])
}
不能那么作。如果一定要这么做。
用这样:
int *a
a=(int *)malloc(sizeof(int)*20)//定义a[20]
a=(int *)realloc(a,sizeof(int)*10)//把之前a的值带过来,并且分配新的数组大小。
数组太多,数组太大,所以得运行错误。“数组太小”在这里只表示有运行错误,不是真的说太小。
如果语句中用到的下标大于等于2000,(超过声明),当然也是“数组太小”错误。
数组较多,较大应当采用动态分配内存法,即声明为指针,要用时再分配内存:
main()
{
int
*a1,*a2,*a3,*a4
int
*ht,*h1,*h2,*h3,*h4
int
*b1,*b2,*b3,*b4
int
NN_b1,NN_b2,NN_b3,NN_b4
要用b1,而且知道数组大小是NN_b1:
b1
=
(int
*)
malloc(NN_b1
*
sizeof(int))
接下来可以用
b1[i],
i=0,1,2,..NN_b1-1。
不再用了,就
用函数
free
释放掉它的内存。
}
数组太多,数组太大,所以得运行错误。
“数组太小”在这里只表示有运行错误,不是真的说太小。
如果语句中用到的下标大于等于2000,(超过声明),当然也是“数组太小”错误。
数组较多,较大应当采用动态分配内存法,即声明为指针,要用时再分配内存:
main()
{
int
*a1,*a2,*a3,*a4
int
*ht,*h1,*h2,*h3,*h4
int
*b1,*b2,*b3,*b4
int
NN_b1,NN_b2,NN_b3,NN_b4
要用b1,而且知道数组大小是NN_b1:
b1
=
(int
*)
malloc(NN_b1
*
sizeof(int))
接下来可以用
b1[i],
i=0,1,2,..NN_b1-1。
不再用了,就
用函数
free
释放掉它的内存。
}
数组太多,数组太大,所以得运行错误。
“数组太小”在这里只表示有运行错误,不是真的说太小。
如果语句中用到的下标大于等于2000,(超过声明),当然也是“数组太小”错误。
数组较多,较大应当采用动态分配内存法,即声明为指针,要用时再分配内存:
main()
{
int
*a1,*a2,*a3,*a4
int
*ht,*h1,*h2,*h3,*h4
int
*b1,*b2,*b3,*b4
int
NN_b1,NN_b2,NN_b3,NN_b4
要用b1,而且知道数组大小是NN_b1:
b1
=
(int
*)
malloc(NN_b1
*
sizeof(int))
接下来可以用
b1[i],
i=0,1,2,..NN_b1-1。
不再用了,就
用函数
free
释放掉它的内存。
}
数组太多,数组太大,所以得运行错误。
“数组太小”在这里只表示有运行错误,不是真的说太小。
如果语句中用到的下标大于等于2000,(超过声明),当然也是“数组太小”错误。
数组较多,较大应当采用动态分配内存法,即声明为指针,要用时再分配内存:
main()
{
int
*a1,*a2,*a3,*a4
int
*ht,*h1,*h2,*h3,*h4
int
*b1,*b2,*b3,*b4
int
NN_b1,NN_b2,NN_b3,NN_b4
要用b1,而且知道数组大小是NN_b1:
b1
=
(int
*)
malloc(NN_b1
*
sizeof(int))
接下来可以用
b1[i],
i=0,1,2,..NN_b1-1。
不再用了,就
用函数
free
释放掉它的内存。
}