• 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次
    ",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个位置上。
    ",x,loc);
    28     }else{
    29         printf("%d不存在!"); 
    30     }
    31     return 0;
    32 }

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

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

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 int main()
     4 {
     5     int a[2][3]={{1,2,3},{4,5,6}};
     6     int b[3][2],i,j;
     7     printf("array a:
    ");
     8     for(i=0;i<=1;i++)
     9     {
    10         for(j=0;j<=2;j++)
    11         {
    12             printf("%5d",a[i][j]);
    13             b[j][i]=a[i][j];
    14         }
    15         printf("
    ");
    16     }
    17     printf("array b:
    ");
    18     for(i=0;i<=2;i++)
    19     {
    20         for(j=0;j<=1;j++)
    21         {
    22             printf("%5d",b[i][j]);
    23         }
    24         printf("
    ");
    25     }
    26     return 0;
    27 }

    2.函数

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

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

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

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

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

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 int sum(int a,int b)
     4 {
     5     int i;
     6     int sum;
     7     for(i=a;i<=b;i++)
     8     {
     9         sum=sum+i;
    10     }
    11     return sum;
    12 }
    13 int main()
    14 {
    15     int x,y,z,result;
    16     x=sum(1,10);
    17     y=sum(20,30);
    18     z=sum(45,60);
    19     result=x+y+z;
    20     printf("这三组数的和为%d",result);
    21 }

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

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 void swap(int a,int b)
     4 {
     5     int t;
     6     t=a;
     7     a=b;
     8     b=t;
     9 }
    10 int main()
    11 {
    12     int a=5;
    13     int b=6;
    14     swap(a,b);
    15     printf("a=%d,b=%d",a,b); 
    16     return 0;
    17 } 

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

  • 相关阅读:
    重装win7之后,wubi安装的ubuntu的启动菜单不见
    data_source.rb:182: TZInfo::DataSourceNotFound解决办法
    Gem::InstallerError:The 'json' native gem requires installed build tools
    去掉DL is deprecated, please use Fiddle警告信息
    ruby on rails安装(ubuntu 14.04)
    ruby on rails 安装(win8 64位)
    满城月季花开
    python中的zip()函数
    python学习之“序列”的理解
    二进制、十进制、八进制、十六进制的理解
  • 原文地址:https://www.cnblogs.com/wxywxy/p/6853649.html
Copyright © 2020-2023  润新知