递归和非递归实现数组求和

原创 2012年03月25日 23:21:49
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
//定义结构体
typedef struct Array
{
    int data[100];
    int length;
}Array;
//非递归实现
int sum (Array);
//递归实现
int sumRecursive (int[], int);
int main(void)
{
    int i = 0;
    Array array;
    //输入长度
    printf("please enter array.length:\n");
    scanf("%d", &array.length);
    //输入各元素
    for (i = 1; i <= array.length; ++i)
    {
        printf("please enter data[%d]:\n", i);
        scanf("%d", &array.data[i]);
    }
    printf("%d\n", sum(array));
    printf("%d\n", sumRecursive(array.data, array.length));
    return 0;
}
int sum (Array array)
{
    int sum = 0;
    int i = 0;
    for (i = 1; i <= array.length; ++i)
    {
        sum += array.data[i];
    }
    return sum;
}
int sumRecursive (int array[], int length)
{
    if (0 == length)
    {
        return 0;
    }
    else
    {
        return array[length] + sumRecursive(array, length - 1);
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C语言+二维数组+非递归实现五子棋游戏(代码贴过来后无缩进,尽请谅解,工程完成度:100%)

规则: 1、白子为0; 2、黑子为@; 3、白子先手; 备注: 1、本程序会持续进行代码与流程的完善; #include #define N 16 void wzq_show(char ...

二叉树的C++非递归实现

  • 2013-11-17 19:21
  • 28.39MB
  • 下载

Stack(4)判断数组是不是二叉搜索树的前序遍历(递归及非递归实现)

给定一个数组,如果给定的数组是二进制搜索树的先序遍历结果,则返回true,否则返回false。时间复杂度为O(n)。 例子:输入: pre[] = {2, 4, 3} 输出: true 下面是上面...

二分查找的非递归实现

二分查找类似于生活中的翻书。比如一本书,页码已经是升序排好的。这个时候你要看第200页,随手一翻,发现是第100页,于是前面100页你就不用翻了,直接翻后面。这一翻,翻到了第300页,于是300页后面...

Hanoi非递归实现

非递归实现二叉搜索树转化成双链表

题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。        10   / \  6 14  / \ / \ 4 8...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)