首页|资源下载
登录|注册

您现在的位置是:首页 > 技术阅读 >  C语言每日一练(002)

C语言每日一练(002)

时间:2022-09-29

题目

求数组元素之和

代码

首先,需要构造一个求和函数。这里求和函数有两种构造方法,一种是迭代法,另一个种是递归法。

迭代法求和函数

  • int sum(int a[], int n)

  • {

  • int i = 0;

  • int arr_sum = 0;

  • for (i = 0; i < n; i++)

  • {

  • arr_sum += a[i];

  • }

  • return arr_sum;

  • }

  • 递归法求和函数

  • int sum(int a[],int n)

  • {

  • if (n <= 0)

  • {

  • return 0;

  • }

  • return a[n-1] + sum(a, n-1);

  • }

  • 完整代码

  • /*******************************************************************************************************

  • ** 题 目: 求数组元素之和

  • ********************************************************************************************************/

  • #include <stdio.h>

  • #include <stdlib.h>

  • #include <conio.h> // getch函数在这个头文件中声明


  • #define Method 0 // 1:迭代法 0:递归法


  • int a[] = {1, 2, 3, 4, 5};


  • #if Method

  • // 方法一:迭代法

  • int sum(int a[], int n)

  • {

  • int i = 0;

  • int arr_sum = 0;

  • for (i = 0; i < n; i++)

  • {

  • arr_sum += a[i];

  • }

  • return arr_sum;

  • }

  • #else

  • // 方法二:递归法

  • int sum(int a[],int n)

  • {

  • if (n <= 0)

  • {

  • return 0;

  • }

  • return a[n-1] + sum(a, n-1);

  • }

  • #endif


  • // 主函数

  • int main(void)

  • {

  • int i;

  • system("cls"); // cmd窗口清屏

  • printf("\n The arry is:\n");

  • for (i = 0; i < sizeof(a)/sizeof(a[0]); i++)

  • {

  • printf(" %d ",a[i]);

  • }

  • printf("\n SUM of the arry is: %d\n", sum(a,sizeof(a)/sizeof(a[0])));

  • printf("\n Press any key to quit...\n");

  • getch(); // 从控制台无回显地取一个字符

  • }

  • 小知识:getch是一个计算机函数,在windows平台下从控制台无回显地取一个字符,在linux下是有回显的。用法是int getch(void)。在WINDOWS/MS-DOS中,也可以利用getch()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,用法:包含conio.h头文件后,在主函数结尾,return 0;之前加上getch();即可

    关于getch、getchar、getche的区别可查看往期笔记:

    转发、点在看就是对小编最大的支持!