目录

1. 数组

1.1 由例子引入数组

1.2 数组的定义

1.3 数组举例

1.4 二维数组

2. 函数

2.1 由例子引入函数

2.2 函数的定义和使用

2.3 函数的参数和变量

2.3.1 函数声明

2.3.2 参数传递

2.3.3 本地变量/局部变量/自动变量(作用域和声明周期)

2.4 其他细节


这个课程内容的安排真的是很有条理,由易到难,由浅入深。比如讲解函数和数组之前,先通过例子说明为什么要引入它们,是为了方便解决某些问题的。而不是开篇就是数组是怎么定义的,函数是怎么定义的,怎么使用它们等等。有一条线贯穿课程的始终,在学习选择语句的时候这种感觉最明显。首先是判断两个数的大小引入if-else语句,接着判断三个数的大小引入嵌套if-else,然后计算分段函数引入级联if-else,对级联if-else的改进又引出switch-case语句。

但是过来人和我说,后面再看自己记录的这些判断素数的例子就会觉得很傻,我现在仅仅是菜鸟,还不是新手,跟他们老手肯定没法比。但是这个过程总要经历的,只能自己默默努力吧,争取早点通过新手营。fighting!

1. 数组

1.1 由例子引入数组

例子1:计算平均数,不需要记录输入的每一个数

#include <stdio.h>int main()
{double sum = 0;int x;int cnt = 0;scanf("%d",&x);while(x != -1){sum += x;cnt++;scanf("%d",&x);}if(cnt > 0){printf("%f\n",sum / cnt);}}

例子2:写一个程序计算用户输入的数字的平均数,并输出所有大于平均数的数。

#include <stdio.h>int main()
{double sum = 0;int x;int cnt = 0;int number[100];//定义数组 scanf("%d",&x);while(x != -1){//对数组中的元素进行赋值 number[cnt] = x;//位置不能错 //debug{int i;printf("%d\t",cnt);for(i = 0; i <= cnt; i++){printf("%d\t",number[i]);}printf("\n");}////number[cnt] = x;放在这里的话,显示就会出问题 sum += x;cnt++;scanf("%d",&x);}if(cnt > 0){printf("%f\n",sum / cnt );int i;for(i = 0; i < cnt; i++){if(number[i] > sum / cnt){//使用数组中的元素 printf("%d\n",number[i]);//遍历数组 }}}return 0;} 

存在安全隐患,数组只有100这么大,但是在输入的过程中并没有判断。解决方法:1. 判断cnt的值,等于99之后就不再输入。

2. 利用C99的特性,数组的个数可以用变量

1.2 数组的定义

1.3 数组举例

#include <stdio.h>int main()
{const int number = 10;//const只有C99才能用 int x;int count[number];//定义数组 int i;for(i = 0; i < number; i++){//数组初始化 count[i] = 0;}scanf("%d",&x);while(x != -1){if(x >= 0 && x <= 9){count[x]++;//数组参与运算 }scanf("%d",&x);}for(i = 0;i < number;i++){printf("%d:%d\n",i,count[i]);//遍历数组输出 }return 0;} 

1.4 二维数组

初始化

例子

2. 函数

2.1 由例子引入函数

例子1:素数求和

#include <stdio.h>
int isPrime(int i);
int main()
{int m,n;int sum = 0;int cnt = 0;int i;scanf("%d %d",&m,&n);if(m==1) m=2;for(i = m; i <= n; i++){if(isPrime(i)){sum += i;cnt++;}}printf("%d %d\n",cnt,sum);return 0;
}int isPrime(int i)
{int ret = 1;//不事先赋初值的话,程序就不对了 int k;for(k = 2; k < i-1; k++){if(i % k == 0){ret = 0;break;}}return ret;
}

例子2:求和函数

// 求和函数
#include <stdio.h>
int Sum(int i,int j);
int main()
{Sum(1,10);Sum(20,30);Sum(35,45);return 0;
}void Sum(int begin,int end)
{int sum = 0;int i;for(i = begin; i <= end; i++){sum +=i;}printf("%d到%d的和是%d\n",begin,end,sum);}

2.2 函数的定义和使用

2.3 函数的参数和变量

2.3.1 函数声明

2.3.2 参数传递

 

 

2.3.3 本地变量/局部变量/自动变量(作用域和声明周期)

 

2.4 其他细节

【C语言】数组和函数相关推荐

  1. C语言数组测试函数,(完整word版)C语言数组与函数阶段测试题答案---(20200807070313)(8页)-原创力文档...

    } } C语言数组与函数阶段测试题答案 一.选择题( 18*2=36 分) 1. 在定义" int a[5][6]; "后,第 11个元素是 [ C ] A.a[2][5] B . ...

  2. C语言——数组、函数、指针

    C语言--数组.函数.指针 宗旨:技术的学习是有限的,分享的精神是无限的. 1.有什么作用?为什么要使用它们? (1)数组:提供一段连续的存储空间,存数据和字符串很方便: (2)函数:模块化程序的设计 ...

  3. C语言 数组作为函数参数

    1.数组元素作为函数实参 int a[10];  //相当于定义了10个变量,a[0]~a[9],那么数组元素就是:a[0]~a[9],数组元素就可以当成变量使用. #include<stdio ...

  4. C语言数组在函数中的传参

    在c语言中有时需要数组作为函数的参数进行传参,那么应该怎样传递呢? 先看一下整数作为函数参数时的传参 #include <stdio.h> #include <stdlib.h> ...

  5. c语言数组与函数,C语言的数组与函数

    数组作为函数形参 // 1. 形参是一个指针 void myfunction(int *param) { } // 2. 形参是一个已定义大小的数组 void myfunction(int param ...

  6. 四十七.c语言数组作为函数参数

    47.数组作为函数参数 变量可以当作参数,这里的数组也可以当作函数的参数. 数组可以由整个数组当作函数的参数,也可以由数组中的某个元素当作函数的参数: 1.整个数组当作函数参数,即把数组名称传入函数中 ...

  7. R语言数组array函数

    数组是一个可以在两个以上的维度存储数据的R数据对象.例如 - 如果创建尺寸(2,3,4)的数组,那么创建4个矩形矩阵每2行3列.数组只能存储数据类型. 使用 array()函数创建数组.它需要向量作为 ...

  8. C语言数组fun函数逆置数组元素,C语言

    第一套 1. 程序填空 程序通过定义学生结构体数组,存储了若干个学生的学号.姓名和三门课的成绩.函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序).请在程序的下划线处填入正 ...

  9. C语言数组作为函数参数

    一:数组元素作为函数的实参 数组元素就是变量,与普通变量没有区别,将数组元素传送给形参,实现单向的值传递. #include <stdio.h> float max(float x,flo ...

  10. C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针

    目录 预编译 值传递.指针传递.引用传递 数组 typedef 函数指针 预编译 预编译又叫预处理.预编译不是编译,而是编译前的处理.这个操作是在正式编译之前由系统自动完成的.#define 和 #i ...

最新文章

  1. ffmpeg text relocations
  2. error和exception
  3. 计算机结构优化,计算机结构与程序优化.ppt
  4. 程序员如何在大公司做管理
  5. vue @input带参数_Vue 全家桶开发的一些小技巧和注意事项
  6. php相隔几分钟变换随机数,PHP怎么固定随机出号几分钟时间再变?
  7. oracle rac实例切换,RAC+单实例DG的切换
  8. mask_rcnn训练自己的数据集
  9. python正在处理中_协程和 asyncio
  10. 链表c++语言 解析,C++ 单链表的基本操作(详解)
  11. 最经典的权限设计同样也是最糟糕的权限设计,权限设计理念最关键第一步之间的PK...
  12. 饿了么美团外卖返利程序对接公众号发单机器人分销系统返利源码
  13. 宽字符处理函数函数与普通函数对照表
  14. hdu 5208 Where is Bob
  15. vue怎么给pc端浏览器设置一个最小屏幕_图文讲解uni-app的PC宽屏适配方案
  16. 华为RH2288V3服务器不重构RAID扩容磁盘方法
  17. C语言使用while语句实现循环结构
  18. 一文读懂直播卡顿优化那些事儿
  19. Angular------win10搭建Angular环境并运行hello-world
  20. GPT系列详解:初代GPT

热门文章

  1. 基于MK802 MiniPC的扩展开发应用-系统自制
  2. Latex 中文使用方法和示例——分别基于MiKTeX(CTeX套装)、TeXLive 编译系统测试CJK、ctex 宏包,PDFLaTeX、XeLaTeX编译命令及GBK、UTF-8文件编码的使用
  3. 个人邮箱地址格式,如何能够正确的书写?
  4. 使用SpringBoot+RabbitMQ框架集成例程
  5. Word2Vec与文章相似度
  6. 副产品举例_CMA知识点:联产品和副产品成本计算法
  7. c语言怎样识别字母大小写,c语言islower()函数如何判断字符是否为小写字母
  8. 码怪之程序员的日常语录
  9. 标准SPI、DUAL SPI、Quad SPI;NorFlash、NandFlash、eMMC闪存的比较与区别
  10. tensorflow gpu环境安装