C语言的数组和函数部分的知识,在语法上和Java语法是有所相似的,这里只通过实例总结一些自己感觉需要理解的部分知识。

1.数组

数组中的元素具有相同的数据类型;数组一旦创建,不能被改变;数组中元素在内存中是连续依次存在的;使用时需要随时注意下标越界的问题。

例1:输入数量不确定的[0,9]范围内的整数,统计每个数字出现的次数,输入-1时结束程序。

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
int num[]={};
scanf("%d",&i);
while(i!=-){
if(i>=&&i<=){
num[i]++;
}
scanf("%d",&i);
}
for(i=;i<;i++)
{
printf("%d出现了%d次\n",i,num[i]);
}
return ;
}

例2:在一组给定的数据中,找出某个数据是否存在。

 #include <stdio.h>
#include <stdlib.h>
int search(int key,int a[],int length)
{
int ret=-;
int i;
for(i=;i<length;i++)
{
if(a[i]==key)
{
ret=i;
break;
}
}
return ret;
}
int main()
{
int a[]={,,,,,,,,,};
int x;
int loc;
printf("请输入一个数字:");
scanf("%d",&x);
loc=search(x,a,);
if(loc!=-)
{
printf("%d在第%d个位置上。\n",x,loc);
}else{
printf("%d不存在!");
}
return ;
}

二维数组:int a[i][j];//i行j列的数组

例3:将一个二维数组行和列的元素互换,存到另一个二维数组中。

 #include <stdio.h>
#include <stdlib.h>
int main()
{
int a[][]={{,,},{,,}};
int b[][],i,j;
printf("array a:\n");
for(i=;i<=;i++)
{
for(j=;j<=;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");
for(i=;i<=;i++)
{
for(j=;j<=;j++)
{
printf("%5d",b[i][j]);
}
printf("\n");
}
return ;
}

2.函数

C语言中的函数和Java中的方法是一个道理的,都是一段实现某种功能的代码块,也都要注意返回值、形参实参等。

***注意:若函数有返回值,必须使用带值的return。

C语言在调用函数时,永远只能传值给函数,不能传变量。

C语言不允许函数嵌套定义。

例1:求1-10,20-30,45-60三个区间数字的总和。

 #include <stdio.h>
#include <stdlib.h>
int sum(int a,int b)
{
int i;
int sum;
for(i=a;i<=b;i++)
{
sum=sum+i;
}
return sum;
}
int main()
{
int x,y,z,result;
x=sum(,);
y=sum(,);
z=sum(,);
result=x+y+z;
printf("这三组数的和为%d",result);
}

例2:swap()无法实现交换两个变量的值。

 #include <stdio.h>
#include <stdlib.h>
void swap(int a,int b)
{
int t;
t=a;
a=b;
b=t;
}
int main()
{
int a=;
int b=;
swap(a,b);
printf("a=%d,b=%d",a,b);
return ;
}

原因是:C语言在调用函数时,永远只能传值给函数,不能传变量。

C语言数组和函数实例练习(一)的更多相关文章

  1. C语言数组和函数实例练习(二)

    1.C语言中不允许函数的嵌套定义,但可以使用函数的嵌套调用. 例1:输入4个整数,找出其中最大的数. #include <stdio.h> #include <stdlib.h> ...

  2. GO语言数组和切片实例详解

    本文实例讲述了GO语言数组和切片的用法.分享给大家供大家参考.具体分析如下: 一.数组 与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列. (1)数组的创建. 数组有3种创建方式: ...

  3. C语言 数组做函数参数退化为指针的技术推演

    //数组做函数参数退化为指针的技术推演 #include<stdio.h> #include<stdlib.h> #include<string.h> //一维数组 ...

  4. php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】

    本文实例总结了php常用数组array函数.分享给大家供大家参考,具体如下: array_combine 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值 案例: <?php ...

  5. C语言 数组做函数参数不传数组个数的遍历方法

    //数组做函数参数不传数组个数的遍历方法 #include<stdio.h> #include<stdlib.h> #include<string.h> void ...

  6. ​C语言数组作为函数参数

    数组可以作为函数的参数使用,进行数据传送. 数组用作函数参数有两种形式,一种是把数组元素(下标变量)作为实参使用:另一种是把数组名作为函数的形参和实参使用. 数组元素作函数实参 数组元素就是下标变量, ...

  7. R语言数组array函数

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

  8. 小学生都看得懂的C语言入门(3): 数组与函数

    #include <stdio.h> int main() { int x; ; ; scanf("%d",&x){ sum+=x; cnt++; scanf( ...

  9. 5_PHP数组_3_数组处理函数及其应用_5_数组遍历语言结构

    以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. 数组遍历语言结构 1. foreach ( array as $value ) 程序: <?php $int ...

随机推荐

  1. Java 判断字符串的存储长度

    判断前台输入项的长度应该都会碰到String.length()  判断出来没有超出最大长度,存到数据库就超出长度的问题,oracle字符集是gbk的不太清楚,如果是UTF-8,中文是占三个字符的,所以 ...

  2. canvas 和 svg

    对于开发人员而言,最直观的区别在于:1.对于画在Canvas上的部件,你需要处理重绘.而SVG则不用,你修改svg dom则系统会自动帮你重绘2.Hittest,即canvas不负责帮你侦测鼠标/触摸 ...

  3. P1401 城市(30分,正解网络流)

    题目描述 N(2<=n<=200)个城市,M(1<=m<=40000)条无向边,你要找T(1<=T<=200)条从城市1到城市N的路,使得最长的边的长度最小,边不能 ...

  4. ajax-工作原理,包含技术,缺陷

    1:原理 2:包含技术 3:缺陷

  5. mysql主从不同步,提示更新找不到记录

    查看丛库状态show slave status\G 从库原文提示:Last_Error: Coordinator stopped because there were error(s) in the ...

  6. C# 查找、结束进程 - 通过进程名精确、模糊查找、结束进程

    /// <summary> /// 根据“精确进程名”结束进程 /// </summary> /// <param name="strProcName" ...

  7. 【sqli-labs】 less23 Error based - strip comments (GET型基于错误的去除注释的注入)

    . 加单引号报错 加# http://localhost/sqli-labs-master/Less-23/?id=1'%23 错误没有改变,推测过滤了# 查看源码发现# -- 都被替换掉了 那么可用 ...

  8. 如何安全使用dispatch_sync

    概述 iOS开发者在与线程打交道的方式中,使用最多的应该就是GCD框架了,没有之一.GCD将繁琐的线程抽象为了一个个队列,让开发者极易理解和使用.但其实队列的底层,依然是利用线程实现的,同样会有死锁的 ...

  9. REST ful

    前后端分离.面向资源.无状态: 请求包含全部信息. 什么是 REST? 下面六条准则定义了一个 REST 系统的特征: 客户-服务器(Client-Server),提供服务的服务器和使用服务的客户需要 ...

  10. 拓扑排序(Topological Order)

    Date:2019-06-17 14:43:59 算法描述 1.定义队列Q,并把所有入度为0的结点加入队列 2.取队首结点,输出.然后删除所有从它除法的边,并令这些边到达的顶点的入度-1,若某个顶点的 ...