C语言数组和函数实例练习

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

1.数组

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

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

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

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

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 int search(int key,int a[],int length)
 4 {
 5     int ret=-1;
 6     int i;
 7     for(i=0;i<length;i++)
 8     {
 9         if(a[i]==key)
10         {
11             ret=i;
12             break;
13         }
14     }
15     return ret;
16 }
17 int main()
18 {
19     int a[10]={1,2,3,4,5,6,7,8,9,10};
20     int x;
21     int loc;
22     printf("请输入一个数字:");
23     scanf("%d",&x);
24     loc=search(x,a,10);
25     if(loc!=-1)
26     {
27         printf("%d在第%d个位置上。\n",x,loc);
28     }else{
29         printf("%d不存在!");
30     }
31     return 0;
32 }

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

例3:读入一个3*3的矩阵,判断0和1谁获胜。(九宫格游戏)

2.函数

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

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

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

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

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

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

时间: 2024-10-15 02:21:02

C语言数组和函数实例练习的相关文章

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

//数组做函数参数退化为指针的技术推演 #include<stdio.h> #include<stdlib.h> #include<string.h> //一维数组做函数参数退化为指针的技术推演 void printfA(char * strarr[3]); //计算机中,数组都是线性存储,二维数组元素也是一个个的排列的 //例如: 1,2,3,4,5,6,7,8,9 像这组数据 我们可以认为是一维数组 int a[9]={1,2,3,4,5,6,7,8,9}; //也

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

//数组做函数参数不传数组个数的遍历方法 #include<stdio.h> #include<stdlib.h> #include<string.h> void PrintfAK(char **pin){ int i = 0; //关键点:pin[i]!=NULL为终止条件 for (i = 0; pin[i]!=NULL; i++) { printf("%s\n", pin[i]); } } void main(){ //赋值数组最后一个元素是0

c语言数组做函数参数退化为指针

我的系统是MAC OS 64位.根据自己的系统位数不同是有差异的.以下是我学习过程中遇到的问题 大侠略过... 有时候我们想通过一个函数对数组的元素进行操作,在sizelen函数中想想通过sizeof获得数组的长度. 想法是好的,不要以为你对C语言很了解了.其实数组在做函数参数是只是传了,一个指针.也就是数组 的首地址. 从结果可以看出,C编译器确实是这么做得.我的系统是64位,所以int *是占8个字节. 以上只是我学习过程中遇到的问题.大侠略过...

R语言数组array函数

数组是一个可以在两个以上的维度存储数据的R数据对象.例如 - 如果创建尺寸(2,3,4)的数组,那么创建4个矩形矩阵每2行3列.数组只能存储数据类型. 使用 array()函数创建数组.它需要向量作为输入,并使用 dim 参数的值,以创建一个数组. 示例 例子下面将创建的每两个3×3矩阵的数组,具有3行3列. # Create two vectors of different lengths. vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15

PHP语言 -- 数组常用函数

attr = array(1,2,3,4,5); echo in_array(1,$attr); //判断数组中是包含在某个值 , 包含返回1 不包含返回空 print_r(array_reverse($attr));//翻转数组 ,返回一个数组 echo count($attr); //返回数组里面元素的个数 $attr = array(1,1,2,3,4,5); print_r(array_unique($attr));//去重 ,返回一个新的数组 unset($attr[2]);//删除数

C语言数组和函数

#include <stdio.h> int arrayAverage(int a[], int count); int arrayMax(int a[],int count); int arrayMin(int a[],int count); int main() { //1> 提示输入5个学生的成绩,算出平均分.最高分.最低分,然后输出 int arry[5]; for (int i=0; i<5; i++) { printf("please %d number\n&

黑马程序员——c语言学习心得——函数传递二维数组

黑马程序员——c语言学习心得——函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化.   变量定义的时候给变量初始化,这是保证不出错的一个很好的习惯.尤其是在指针的使用上,如果我们没有给指针初始化,就会出现野指针,该指针的指向并不是我们所希望的,一旦错误的释放了这个指针,就会发生内存的访问.那么如何初始化指针变量呢,一般有以下几种方法:   1.初始化空指针   int* pInteger=N

《黑马程序验》数组与函数(C语言)

一.数组的概念 1.一维数组的定义与使用 int array[10];//定义一个一维数组,名字叫array,一共有10个元素,每个元素都是int类型的 array[0] = 20; array[1] = 30; array[9] = 80; 错误写法: //array[10] = 100;//没有 array[10]这个元素 数组在内存中就是一段连续的空间,每个元素的类型是一样的 2.一维数组初始化 int array[10] = { 100, 1, 5, 3, 4, 5, 6, 7, 8,

C语言二维数组作为函数的参数

前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: #include <cstdio> void print(int *a[3]) { printf("%d\n",a[0][0]); } int main() { int a[2][3] = {1,2,3,4,5,6}; print(a); return 0; } 编译程序时候,在第10行提示错误信息:|