求助一C程序题,没看明白

求助一C程序题,没看明白#include<stdio.h>voidfunc(int*x,int*y){inti,m;for(i=0,m=0;i<*y;i++,x++){i... 求助一C程序题,没看明白#include<stdio.h>
void func(int *x,int *y)
{
int i,m;
for(i=0,m=0;i<*y;i++,x++)
{
if(*x<0)break;
if(*x%2)continue;
m++;
}
*y=m;
}
int main()
{
int i=8,a[]={2,5,0,7,1,4,8,3,2,6};
func(a,&i);
printf("%d\n",i);
return 0;
}
展开
 我来答
叶楠随舞
2017-06-06
知道答主
回答量:7
采纳率:0%
帮助的人:7788
展开全部
  1. 调用函数的形参为两个指针变量x和y,与主函数里的实参a和&i属于地址的传递,对应主函数里a[0]的地址和i的地址,调用函数里*x、*y的改变会改变主函数里数组元素和i的值。

  2. 调用函数中for循环表示求数组a中前8个元素偶数的个数m,continue表示当a[i]为奇数时不执行m++直接跳到下一个循环,调用函数结束时*y=m=4,即主函数里的i的值也进行了改变,输出值为4.

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
imkarayi9d4f
2017-06-06 · TA获得超过1552个赞
知道小有建树答主
回答量:1164
采纳率:85%
帮助的人:602万
展开全部
#include <stdio.h>
void func(int *x,int *y)     //查找偶数 
{
int i,m;
for(i=0,m=0;i<*y;i++,x++)
{
if(*x<0)
break;         //如果是负数,退出 
if(*x%2)
continue;      //如果是奇数,不执行下面的命令 
m++;
}
*y=m;
}
int main()
{
int i=8,a[]={2,5,0,7,1,4,8,3,2,6};
func(a,&i);
printf("%d\n",i); //输出显示:4 
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
库从0Jn
2017-06-05 · TA获得超过146个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:44.8万
展开全部
这么简单也没人帮忙?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Yuqi_Tan

2017-06-06 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3449万
展开全部
求前8个数字中偶数和0的个数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式