数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun的功 能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累 加值放入数组中

简介: 数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun的功 能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累 加值放入数组中

代码如下所示:

#include <stdio.h>
#define    N   20 //N的值不能太小,为了确保不溢出,我们可以规定它与n的值相同
int fun(int a[], int n)//数组和指针都可进行传递
{
  int i, j=0,sum=0,k;
  for (k=3,i = 0; i < n; i++,k += 5)//变量k在本循环中的作用是实现符合条件的值的求解
                    //变量i在本循环中的作用则是对n个数的遍历
  {
    sum += k;
    if (sum % 4 == 2)
      a[j++] = sum;//将符合条件的数存放在一个数组中
  }
  return j;//作为返回值给d
}
int main()
{
  int n,a[N], i, d;
  scanf_s("%d", &n);//累加的项数
  d=fun(a,n);
  for (i = 0; i < d; i++)//对数组元素进行输出
  printf("%6d", a[i]);
}

输出结果如下所示:

相关文章
|
6月前
|
算法 搜索推荐 程序员
第五十练 请以递归方式实现计算给定数字的幂的函数
第五十练 请以递归方式实现计算给定数字的幂的函数
28 4
|
6月前
|
算法 搜索推荐 程序员
第四十七练 请以递归方式实现计算整数列表的最大值
第四十七练 请以递归方式实现计算整数列表的最大值
45 2
|
6月前
PTA-求奇数分之一序列前N项和
求奇数分之一序列前N项和
90 0
|
6月前
|
算法 测试技术 C#
【数学】LeetCode1526: 形成目标数组的子数组最少增加次数
【数学】LeetCode1526: 形成目标数组的子数组最少增加次数
|
6月前
7-7 念数字 (15 分)(用数组简化判断过程)
7-7 念数字 (15 分)(用数组简化判断过程)
48 0
学C的第十三天【应用多文件的形式实现 三子棋 程序(重点);练习:1. 打印9*9乘法口诀表、2. 求10个整数中的最大值、3. 分数加减交叉计算、4. 数一下 1到 100 的整数中出现了多少个9】
9.数组的应用实例1:三子棋(综合以前学习的知识) 三子棋的实现:(重点都在注释中) 1. 游戏不退出,继续玩下一把(循环) 2. 应用多文件的形式写代码