数组元素作为函数实参的例题,我不太理解为什么choose函数括号中为什么不可以用a[i]
#include<stdio.h>void main()
{
int a={1,2,3,4,-1,-2,-3,-4,2,3},b,i;
int choose(int a);
for(i=0;i<10;i++)
{
b=choose(a);
printf(" %d ",b);
}
}
int choose(int a)
{
if(a>0)
{
return a;
}
else
{
return 0;
}
}
现在的错误是五个,额我将函数choose中a的位置换成x,就可以正常运行,我不太理解为什么,希望老师们能赐教,谢谢 题目:判别一个整数数组a={1, 2, 3, 4, -1, -2, -3, -4, 2, 3}中各元素的值,若大于0 则输出该值,若小于等于0则输出0值。
本帖最后由 ba21 于 2017-8-23 23:51 编辑
//代码1传入每个值
#include<stdio.h>
void main()
{
int a={1,2,3,4,-1,-2,-3,-4,2,3};
int b,i;
int choose(int a); //形参为值
for(i=0;i<10;i++)
{
b=choose(a); //实参传入 值
printf(" %d ",b);
}
printf("\n");
}
int choose(int a)//形参为值
{
if(a>0)
{
return a;
}
else
{
return 0;
}
}
//代码2传地址
#include<stdio.h>
void main()
{
int a={1,2,3,4,-1,-2,-3,-4,2,3};
int b,i;
int choose(int a[], int index);//形参 数组地址, index数组下标
for(i=0;i<10;i++)
{
b=choose(a, i);//实参 传入数组地址,i数组下标
printf(" %d ",b);
}
printf("\n");
}
int choose(int a[], int index)//形参 数组地址, index数组下标
{
if(a>0)
{
return a;
}
else
{
return 0;
}
}
页:
[1]