能讲一下C语言形参如果是指针变量如何使用吗?

题目:将1-1000之间能整除7或者11,但不能同时整除7和11的数保存在数组中,通过n返回这些数的个数为什么要定义j,在赋值给*n... 题目:将1-1000之间能整除7或者11,但不能同时整除7和11的数保存在数组中,通过n返回这些数的个数为什么要定义j,在赋值给*n 展开
 我来答
syht2000
高粉答主

2020-07-07 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
一般来说在函数中如果最终要返回或者设置什么结果,通常是定义一个变量(与你结果相同数据类型),在程序中进行运算,之后再返回或者再设置,这样主要是为了方便和好理解,具体到你这题上,因为最终结果是要放在*n里,它的初始值也是0,所以不要j这种中间变量也是可以的,比如说可以是
void fun(int *a,int *n) {
int i=0;
*n=0;

for(i=7; i<1000; i++) {
if(i%7==0||i%11==0)
if(!(i%7==0 &&i%11==0))
a[(*n)++]=i;
}
a[*n]='\0'; //这行其实是没啥太多意义的

}

再比如说一个更简单的例子,比如说有
int fun(int a,int b) {
int sum=0;
sum=a+b;
return sum;
}
这个fun是返回a,b之和,如果要简化因为计算很简单当然也可以里面不要sum,直接改为return a+b; 但是如果计算过程很复杂呢,不定义中间变量就只能把代码写在一行上,理解和阅读还有调试都会比较麻烦
老子很凉
2020-07-10 · TA获得超过634个赞
知道小有建树答主
回答量:360
采纳率:79%
帮助的人:54万
展开全部
  1. 如图传入的两个参数是数组地址和符合条件筛选个数变量的地址。如果不适用J为中间变量每次计算时需要对传入的 地址取值,理论上这1000次取值操作的效率远低于增加J为中间变量效率。

  2. 个人认为直接把个数作为函数返回值最合适。

    int fun(int *a)

    {  int j = 0;

    for(int i= 7;i<=1000; i++)

    {

    if() //同图条件

    j++;

    }

    return j;

    };

    n = fun(aa);

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式