C语言 带参数函数的引用调用

题目:编写函数,计算一维数组中大于零,等于零和小于零的数组元素个数。
PS:请写出详细的程序,以及注释说明。
fun(a,sizeof(a)/sizeof(a[0]));
不明白这个

#include <stdio.h>

void fun(int * a,int k);

void main()
{
int a[10];
printf("请输入10个整数:\n");
for(int i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
fun(a,sizeof(a)/sizeof(a[0]));
}

void fun(int a[],int k)//这就是你想要的函数
{
int g0=0,t0=0,e0=0;/*g0就是>0,t0就是小于0,e0就等0*/
for(int i=0;i<k;i++)
{
if(a[i]>0) g0++;
if(a[i]==0) e0++;
if(a[i]<0) t0++;
}
printf("大于0的个数为:%d\n",g0);
printf("小于0的个数为:%d\n",t0);
printf("等于0的个数为:%d\n",e0);
}
/*
说明就和ichenq的差不多,只是ichenq的那个有问题,比如他的if语句里多了几个";"号,导致无没通过,另外我用他的函数来测试得不到想要的结果
sizeof(a)/sizeof(a[0])就是数组a的长度*/
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-26
1、C语言调用函数就是先定义并声明函数,之后再根据定义函数的格式调用。
2、下面举例来说明函数调用方法:
#include<stdio.h>
int fun(int x, int y); // 函数声明,如果函数写在被调用处之前,可以不用声明
void main()
{
int a=1, b=2, c;
c = fun(a, b); // 函数的调用,调用自定义函数fun,其中a,b为实际参数,传递给被调用函数的输入值
}
// 自定义函数fun
int fun(int x, int y) // 函数首部
{ // {}中的语言为函数体
return x>y ? x : y; // 返回x和y中较大的一个数
}
第2个回答  2007-11-27
int foo(int arr[])
{
int n1 = 0; /*用n1来保存大于0的个数*/
int n2 = 0; /*用n2来保存等于0的个数*/
int n3 = 0; /*用n3来保存小于0的个数*/
int len = sizeof(arr)/sizeof(arr[0]); /*求出数组长度*/

int i;
/*用一个for循环求出所有大于、等于和小于0的个数*/
for (i=0; i<len; ++i)
{
if (arr[i] > 0) { ++n1;};
else if (arr[i] == 0) { ++n2; };
else if (arr[i] < 0) { ++n3;};
}

printf("大于0的数有 %d 个。\n",n1);
printf("等于0的数有 %d 个。\n",n2);
printf("小于0的数有 %d 个。\n",n3);
}
第3个回答  2007-11-27
#include <stdio.h>
#define N 5 //定义常量 以后修改方便....如果想要数组元素10个的就直接换成10
void Strcomp(int p[])//Strcomp是函数名 可以自己更改
{

int i;//控制比较次数
int cont,numt,temp;//定义计数
cont=numt=temp=0;//初始计数
for(i=0;i<5;i++)//判断
{
if(p[i]==0)
cont++;
else if(p[i]>0)
numt++;
else
temp++;
}
printf("=0的数: %d\n",cont);//打印
printf(">0的数: %d\n",numt);
printf("<0的数: %d\n",temp);
}

void main()
{
int i,a[N];

printf("请输入五个数:\n");
for(i=0;i<5;i++)
{
printf("请输入第%d个数: ",i+1);
scanf("%d",&a[i]);
}
Strcomp(a);//调用函数
}
相似回答