c语言怎么输出一个我定义的数组?
比如我定义a[5]={1,2,3,4,6};怎么输出这个a[5].我老是弄不对,也看不出什么毛病。...
比如我定义a[5]={1,2,3,4,6};
怎么输出这个a[5].我老是弄不对,也看不出什么毛病。 展开
怎么输出这个a[5].我老是弄不对,也看不出什么毛病。 展开
4个回答
2015-06-06 · 知道合伙人互联网行家
关注
展开全部
提供两个办法:
1.在主调函数中建立数组,将数组指针传给自定义的函数,处理后主调函数中的数组值也就变化了。
void fun(int a[],int n){
........
}//其中a[]就是要输入的数组,n是这个数组的长度。
void main(void){
int arry[10]={1,2,3,4,5,6,7,8,9,0};
fun(arry,10);
......
}
2.可以在主调函数中建立数组并把首地址和长度传给函数,在函数中创建一个动态数组,处理完后把动态数组的首地址返回主调函数,最后在主调函数中释放动态申请的内存。
int *fun(int a[],int n){
int *p=(int *)malloc(n*sizeof(int));//申请内存.
if(!p){//判断是否申请成功.
printf("failure..骇笭粪蝗荼豪讽通釜坤.");
exit(0);
}
memcpy(p,a,n*sizeof(int));//把主调函数的数组拷贝过来.
......
return p;
}
void main(void){
int arry[10]={1,2,3,4,5,6,7,8,9,0},*ptmp;
ptmp=fun(arry,10);
......
free(ptmp);//释放申请的空间.
}
数组的内容是不能一一传给函数的……
1.在主调函数中建立数组,将数组指针传给自定义的函数,处理后主调函数中的数组值也就变化了。
void fun(int a[],int n){
........
}//其中a[]就是要输入的数组,n是这个数组的长度。
void main(void){
int arry[10]={1,2,3,4,5,6,7,8,9,0};
fun(arry,10);
......
}
2.可以在主调函数中建立数组并把首地址和长度传给函数,在函数中创建一个动态数组,处理完后把动态数组的首地址返回主调函数,最后在主调函数中释放动态申请的内存。
int *fun(int a[],int n){
int *p=(int *)malloc(n*sizeof(int));//申请内存.
if(!p){//判断是否申请成功.
printf("failure..骇笭粪蝗荼豪讽通釜坤.");
exit(0);
}
memcpy(p,a,n*sizeof(int));//把主调函数的数组拷贝过来.
......
return p;
}
void main(void){
int arry[10]={1,2,3,4,5,6,7,8,9,0},*ptmp;
ptmp=fun(arry,10);
......
free(ptmp);//释放申请的空间.
}
数组的内容是不能一一传给函数的……
展开全部
你就定义了5个数,输出是从下标0开始输出。你这个最多输出a【4】
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言的数组概念的学习,通过for循环输出打印数组
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=0;i<5;i++)
{
printf("%d\n",a[i])
}
{
printf("%d\n",a[i])
}
追问
在请问下为什么printf前后要被括号括起来呢?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询