大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先这样的作法是没有意义的,因为当函数返回之后,函数原始空间中的数组和变量是临时的,都会被自动清除和释放。如果需要通过函数将改变的结果传回,可以使用指针。 void shuru(int* p,int a[]){ *p = 123; int b[10]={1,2,3,4,5,4,6,7}; for (int i=0;i9;i++) a[i]=b[i] } void main(){ int b, a[10] ; shuru(b,a); printf("%d",b); for(int i=0;i10;i++){ printf("%d",a[i]); } }
成都创新互联专注于彭水苗族土家族网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供彭水苗族土家族营销型网站建设,彭水苗族土家族网站制作、彭水苗族土家族网页设计、彭水苗族土家族网站官网定制、微信小程序开发服务,打造彭水苗族土家族网络公司原创品牌,更为您提供彭水苗族土家族网站排名全网营销落地服务。
#include stdio.h
void sort(int a[20])
{ int i,j,k,t;
for(i=0;i19;i++)
{ k=i;
for(j=i+1;j20;j++)
if(a[k]a[j]) k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
}
void main()
{ int a[20]={2,5,7,8,4,10,48,96,65,74,35,84,15,38,52,56,60,20,17,80};
sort(a);
}
没问题
我调试过了
记得给我加分
不能够返回整个数组,只能返回数组中的某个值。如果数组在函数内部定义,也不能直接返回数组名(临时变量在函数结束时会释放)。一般写程序不会把数组作为返回值返回,想要返回整个数组,可以用指针来实现。
这问题说明你对指针的运用还是不熟练的,既然是数组,作为函数参数传递的是数组首地址.
#include stdio.h
#include stdlib.h
void func1(int *array, int size) {
int i,temp;
for (i=0;isize;i++) {
scanf("%d",temp); //利用scanf输入赋值
array[i]=temp;
}
}
//数组array_b根据数组array_a的元素乘以项数获得元素值
void func2(int *array_a,int *array_b, int size) {
int i;
for (i=0;isize;i++)
array_b[i]=array_a[i] * i;
}
//输出数组元素
void print(int *array, int size) {
int i;
for (i=0;isize;i++)
printf("%d ",array[i]);
printf("\n");
}
int main(void) {
int size; //数组大小
int i;
int *array_a, *array_b; //声明数组array_a,array_b
scanf("%d", size);
array_a=malloc(sizeof(int) * size);
array_b=malloc(sizeof(int) * size);
func1(array_a, size);
func2(array_a, array_b, size);
print(array_a,size);
print(array_b,size);
return 0;
}
1)首先删除函数就有问题,你传入的参数i在哪里发挥作用了?只是把数组顺序前移了,应该把k=0改为k=i
2)你在n=getData(a);后面,打印一下a数组的内容,可能这里就不对,这个地方数组是传不出来的,你可以看看。
3)你查一下数据在函数参数中的用法,在子函数内对数组的修改应该传不出来,你把a数组作为全局变量使用才有可能得到结果。