C——数组

一维数组的定义和引用

  • 定义:类型说明符 数组名[常量表达式]

    int a[ 10 ];他表示定义了一个整形数组,数组名为a,有10个元素。

    注意:C语言不允许对数组的大小做动态定义。

  • 一维数组元素的引用:数组名[下标]

  • 一维数组初始化

      int[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
  • 一维数组例子

    冒泡法对十个数排序(升序)

      #include<stdio.h>
    #include<math.h>
    void main(){
    int i, j, t, a[10];
    printf("input 10 numbers: \n");
    for(i = 0; i< 10; i++)
    scanf("%d", &a[i]);
    printf("\n");//输入10个数字
    for(j = 0; j < 9; j++)//进行9次循环,实现9躺排序
    for(i = 0; i < 9-j; i++)//在每一趟中进行9-j次比较
    if(a[i] > a[i+1]){
    t = a[i];
    a[i] = a[i+1];
    a[i+1] = t;
    }
    printf("the 10 numbers: \n");
    for(i = 0; i < 9; i++){
    printf("%d", a[i]);
    printf("\n");
    }
    }

二维数组的定义和引用

  • 定义: 类型说明符 数组名[常量表达式] [常量表达式]

    float [3][4]:先横后列

  • 二维数组的引用同一维数组类似

  • 二维数组的初始化

      int a [3] [4] = {{1,2,3}, {4,5,6}, {1,3,4,5,6}};//或
    int a [3] [4] = {1,2,3,4,5,6,7,8,9,0};

没有占位的默认为0。

  • 二维数组举例:数组的行和列互换

      #include<stdio.h>
    #include<math.h>
    void main(){
    int a[2][3] = {{1,2,3},{4,5,6}};
    int b[3][2], i, j;
    printf("array a: \n");
    for(i = 0; i<= 1;i++)
    {
    for(j = 0; j<= 2; j++)
    {
    printf("%5d", a[i][j]);
    b[j][i] = a[i][j];
    }
    printf("\n");
    }
    printf("array b: \n");
    for(i = 0; i<= 2;i++)
    {
    for(j = 0; j<= 1; j++)
    printf("%5d", b[i][j]);
    printf("\n");
    }
    }

字符数组

  • 字符数组的定义

    char c[10];

  • 初始化

    char c[5] = {'w', 'i', 'b',' ', 'b'};

  • 字符数组的输入输出

    逐个输入输出:%c;

    整个字符串一次输出输入:%s;

    例子:

      char c[] = {"china"};
    printf("%s",c);

注意: scanf函数中的输入输出如果是字符数组名,不要再加地址符&,

  • 字符串处理函数
  1. puts(字符数组)

    其作用是将一个字符串输出在终端。
  2. gets函数,作用是从终端输入一个字符串到字符数组,并得到一个函数值。
  3. stract函数

    格式:stract(字符数组1,字符数组2)

    该函数是一个字符串连接函数
  4. strcpy和strncpy函数

    strcpy函数是字符串复制函数,作用是将字符串2里的内容复制到字符串1中,strncpy(str1, str2,2)函数是将字符串2中的最前面的2个字符复制到字符串1中去。
  5. strcmp函数,是字符串比较的函数,
  6. strlen函数,是测试字符串长度的函数,函数的值为字符串中的实际长度,不包括'\0'在内。
  7. strlwr函数,是字符串小写函数,
  • 例子

    输入一行字符,统计共有多少个单词

      #include<stdio.h>
    #include<math.h>
    void main(){
    char string[81];
    int i, num = 0, word = 0;
    char c;
    gets(string);
    for(i = 0; (c = string[i])!= '\0'; i++)
    if(c == ' ') word =0;
    else if(word == 0)
    {
    word = 1;
    num ++;
    }
    printf("there are %d words in the line\n", num);
    }

将两个字符串连接起来 不要用strcat函数

	#include<stdio.h>
int main()
{
char c1[80],c2[80];
int i,j;
printf("Input string1:");
gets(c1);
printf("Input string2:");
gets(c2);
for(i=0;c1[i]!='\0';i++)
{ }
for(j=0;c2[j]!='\0';i++,j++)
{
c1[i]=c2[j];//现在的c[i]已经遍历到了str1的最后了。
}
puts(c1);
return 0;
}

输入一个平行四边形

	#include<stdio.h>
void main()
{
int i,j,k;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("*");
}
printf("\n");
for(k=1;k<=i+1;k++)
printf(" ");
}
printf("\n");
}

C语言基础三的更多相关文章

  1. C语言基础三(敲打键盘、寻找资料,循环语句)

    有人在学C语言或者其他语言的时候,大家都会说逻辑思维的硬道理,认为没有逻辑思维的人走不远,那么小编这里借助简单的if...else... 英文解释if(如果),else(否则) ----------- ...

  2. python自动化--语言基础三字典、函数、全局/局部变量

    字典 dict1 = {,'class':'first'} print(dict1.keys()) #打印所有的key值 print(dict1.values()) #打印所有的values值 pri ...

  3. Go语言基础三:基本数据类型和运算符

    Go语言数据类型 与其他编程语言一样,Go语言提供了各种数据类型,可分为基本的数据类型和复杂的数据类型.基本的数据类型就是基本的构造块,例如字符串.数字和布尔值.复杂的数据类型是用户自己定义的结构,由 ...

  4. Java语言基础(三)

    Java语言基础(三) 一.    补码 (1).之所以有补码是因为要考虑成本 就是造计算机的成本 (2).下面让我们分析一下补码 以四位补码为例 <1> 高位是符号位,它决定其是正数还是 ...

  5. Swift语言指南(三)--语言基础之整数和浮点数

    原文:Swift语言指南(三)--语言基础之整数和浮点数 整数 整数指没有小数的整数,如42,-23.整数可以是有符号的(正数,零,负数),也可以是无符号的(正数,零). Swift提供了8,16,3 ...

  6. 第二章(java程序设计)第三章(语言基础)

    第二章 2.1 对象 对象的概念是由现实世界引入问题模型: 对象包含有:状态和行为.具体地来说是: 数据封装:对象的方法的作用就是:将内部变量封装起来,提供给外界交互的窗口.(实现对数据的隐藏) 继承 ...

  7. Golang 入门系列(三)Go语言基础知识汇总

    前面已经了 Go 环境的配置和初学Go时,容易遇到的坑,大家可以请查看前面的文章 https://www.cnblogs.com/zhangweizhong/category/1275863.html ...

  8. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...

  9. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...

随机推荐

  1. 洛谷 P3263 [JLOI2015]有意义的字符串

    洛谷 首先,看到\((\frac{(b+\sqrt{d})}{2})^n\),很快能够想到一元二次方程的解\(\frac{-b\pm\sqrt{\Delta}}{2a}\). 所以可以推出,\(\fr ...

  2. mac安装yarn , MAC升级Nodejs

    Npm i -g yarn 第一步,先查看本机node.js版本: `$ node -v` 第二步,清除node.js的cache: `$ sudo npm cache clean -f` 第三步,安 ...

  3. boost之网络通信

    ip::tcp的内部类型socket,acceptor以及resolver是TCP通信中最核心的类. 1.同步客户端代码: #include <iostream> #include < ...

  4. Django序列化

    一.Django序列化    1.序列化应用场景     1.关于Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,由于httpresponse只能返回字符串或者是字节,而从数据库 ...

  5. LeetCode:搜索二维矩阵【74】

    LeetCode:搜索二维矩阵[74] 题目描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的 ...

  6. Harbor私有仓库搭建

    1.安装docker yum install -y dockersystemctl start dockersystemctl enable docker 2.安装docker-compose 1.下 ...

  7. iOS 11 Xcode9开发 新特性学习 (警告篇)

    最新版本SDK优化了开发体验,编译过程会提供更多提示警告,建议你修改.这些功能也可以自主选择用或者不用,当然,苹果喜欢你用他推荐的东西... 1 . @avalibale 语法,同步判断当前iOS系统 ...

  8. flex 实现图片播放 方案二 把临时3张图片预加载放入内存

    该方案,是预加载:前一张,当前,下一张图片,一共3张图片放入内存中.这样对内存的消耗可以非常小,加载之后的图片就释放内存. 下面示例一个是类ImagePlayers,一个是index.mxml pac ...

  9. Linux Shell基础 位置参数变量、预定义变量

    位置参数变量 在 Linux 的命令行中,当一条命令或脚本执行时,后面可以跟多个参数,我们使用位置参数变量来表示这些参数.其中,$0 代表命令行本身,$1 代表第 1 个参数,$2 代表第 2 个参数 ...

  10. Android开发之旅-获取地理位置的经度和纬度

    在Android应用程序中,可以使用LocationManager来获取移动设备所在的地理位置信息.看如下实例:新建android应用程序TestLocation. 1.activity_main.x ...