C语言数组:C语言数组定义、二维数组、动态数组、字符串数组
1.C语言数组的概念
#include <stdio.h>#include <stdlib.h>int main(){int a1=20, a2=345, a3=700, a4=22;int b1=56720, b2=9999, b3=20098, b4=2;int c1=233, c2=205, c3=1, c4=6666;int d1=34, d2=0, d3=23, d4=23006783;printf("%-9d %-9d %-9d %-9d\n", a1, a2, a3, a4);printf("%-9d %-9d %-9d %-9d\n", b1, b2, b3, b4);printf("%-9d %-9d %-9d %-9d\n", c1, c2, c3, c4);printf("%-9d %-9d %-9d %-9d\n", d1, d2, d3, d4);system("pause");return 0;}
int a[4];
arrayName[index]
a[0]=20;a[1]=345;a[2]=700;a[3]=22;
dataType arrayName[length];
float m[12];char ch[9];

①.数组的初始化
int a[4] = {20, 345, 700, 22};
int a[10]={12, 19, 22 , 993, 344};
int a[10]={1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
int a[10]=1;
int a[]={1,2,3,4,5};
int a[5]={1,2,3,4,5};
#include <stdio.h>#include <stdlib.h>int main(){int a[4] = {20, 345, 700, 22};int b[4] = {56720, 9999, 20098, 2};int c[4] = {233, 205, 1, 6666};int d[4] = {34, 0, 23, 23006783};printf("%-9d %-9d %-9d %-9d\n", a[0], a[1], a[2], a[3]);printf("%-9d %-9d %-9d %-9d\n", b[0], b[1], b[2], b[3]);printf("%-9d %-9d %-9d %-9d\n", c[0], c[1], c[2], c[3]);printf("%-9d %-9d %-9d %-9d\n", d[0], d[1], d[2], d[3]);system("pause");return 0;}
2.C语言二维数组
①.二维数组的定义
dataType arrayName[length1][length2];
int a[3][4];
a[0][0], a[0][1], a[0][2], a[0][3]a[1][0], a[1][1], a[1][2], a[1][3]a[2][0], a[2][1], a[2][2], a[2][3]
| -- | 张 |
王 | 李 | 赵 | 周 |
| Math | 80 | 61 | 59 | 85 | 76 |
| C | 75 | 65 | 63 | 87 | 77 |
| English | 92 | 71 | 70 | 90 | 85 |
#include <stdio.h>int main(){int i, j; //二维数组下标int sum=0; //当前科目的总成绩int average; //总平均分int v[3]; //各科平均分int a[5][3]; //用来保存每个同学各科成绩的二维数组printf("Input score:\n");for(i=0; i<3; i++){for(j=0; j<5; j++){scanf("%d", &a[j][i]); //输入每个同学的各科成绩sum+=a[j][i]; //计算当前科目的总成绩}v[i]=sum/5; // 当前科目的平均分sum=0;}average =(v[0]+v[1]+v[2])/3;printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);printf("Total:%d\n", average);return 0;}
①.二维数组的初始化
int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };
int a[5][3]={80, 75, 92, 61, 65, 71, 59, 63, 70, 85, 87, 90, 76, 77, 85};
#include <stdio.h>int main(){int i, j; //二维数组下标int sum=0; //当前科目的总成绩int average; //总平均分int v[3]; //各科平均分int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };for(i=0; i<3; i++){for(j=0; j<5; j++){sum+=a[j][i]; //计算当前科目的总成绩}v[i]=sum/5; // 当前科目的平均分sum=0;}average =(v[0]+v[1]+v[2])/3;printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);printf("Total:%d\n", average);return 0;}
int a[3][3]={{1},{2},{3}};
int a [3][3]={{0,1},{0,0,2},{3}};
int a[3][3]={1,2,3,4,5,6,7,8,9};
int a[][3]={1,2,3,4,5,6,7,8,9};
3.C语言字符数组和字符串
char c[10];
int c[10];
char c[5][10];
char c[10]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a','m'}; // c[9]未赋值,所以为默认值0
char c[]={'c', ' ', 'p', 'r', 'o', 'g', 'r', 'a', 'm' };
#include <stdio.h>int main(){int i,j;char a[][7]={{'C',' ','L','a','n','g'},{'P','r','o','g','r','a','m'},{'F','u','n','n','y'}};for(i=0; i<=2; i++){for(j=0; j<=6; j++){printf("%c", a[i][j]);}printf("\n");}return 0;}
①.字符串和字符串结束标志
puts("http://c.biancheng.net");printf("C Language");
#include <stdio.h>int main(){puts("C Lang\0 is funny!");return 0;}
char c[]={'c', ' ','p','r','o','g','r','a','m'};
char c[]={"C program"};
char c[]="C program";

②.字符数组的输入输出
#include <stdio.h>int main(){char c[]="C Lang\nJava\nC++\nPython";printf("%s\n", c);return 0;}
#include <stdio.h>int main(){char str[100]; //必须说明长度,不能写为 char str[];printf("Input string: ");scanf("%s", str);printf("Your string is: %s\n", str);return 0;}
③对程序的几点说明
#include <stdio.h>int main(){char str1[20], str2[20], str3[20], str4[20];printf("Input string: ");scanf("%s %s %s %s",str1, str2, str3, str4);printf("Your string: %s %s %s %s\n", str1, str2, str3, str4);return 0;}
int a, b;scanf("%d %d", &a, &b);
char str1[20], str2[20], str3[20], str4[20];scanf("%s %s %s %s",str1, str2, str3, str4);

printf("%s", c);
4.C语言字符串处理函数
①.字符串输入输出函数
#include <stdio.h>int main(){char str[60];printf("Input string: ");gets(str);puts(str);return 0;}
②.字符串长度函数strlen
strlen(arrayName);
#include <stdio.h>#include <string.h>int main(){char str[]="C language";int len = strlen(str);printf("The lenth of the string is %d\n", len);return 0;}
char str[]="C \0language";
③.字符串连接函数 strcat
strcat(arrayName1, arrayName2);
#include <stdio.h>#include <string.h>int main(){char str1[40]="My name is ";int str2[20];printf("Input your name:");gets(str2);strcat(str1,str2);puts(st1);return 0;}
④.字符串复制函数strcpy
strcpy(arrayName1, arrayName2);
#include <stdio.h>#include <string.h>int main(){char str1[15], str2[]="C Language";strcpy(str1, str2);puts(str1);printf("\n");return 0;}
5.对C语言数组的总结以及实例
①.对数组的总结
type arrayName[length]
- length 必须是一个数值常量,不能是变量,因为代码编译期间编译器要明确知道数组元素的个数,而变量的值是不确定的。
- 数组中的数据保存在一个内存区域A,而数组名保存另外一个内存区域B,数组名中包含的是A的首地址。
// 对单个元素赋值int a[3];a[0] = 3;a[1] = 100;a[2] = 34;// 整体赋值(不指明数组长度)float b[] = { 23.3, 100.00, 10, 0.34 };// 整体赋值(指明数组长度)int m[10] = { 100, 30, 234 };// 字符数组赋值char str[] = "http://c.biancheng.net";
②.数组应用举例
#include <stdio.h>int main(){int a[10] = {2, 123, 45, 100, 575, 240, 799, 710, 10, 90};int max=a[0], min=a[0]; //最大值和最小值int i; //循环增量int len = sizeof(a) / sizeof(int); //计算数组长度for(i=1; i<len; i++){if(a[i] > max){max = a[i];}if(a[i] < min){min = a[i];}}printf("The max is %d, The min is %d\n", max, min);return 0;}
③.关于排序和查找
- 给你 10 个打乱顺序的整数,要能够按照从小到大或者从大到小的顺序输出;
- 给定一个字符串 str1,以及一个子串 str2,要能够判断 str2 是否在 str1 中。
C语言数组:C语言数组定义、二维数组、动态数组、字符串数组的更多相关文章
- Android 在资源文件(res/strings.xml)定义一维数组,间接定义二维数组
经常我们会在资源文件(res/strings.xml)定义字符串,一维数组,那定义二维数组?直接定义二维数组没找到,可以间接定义. 其实很简单,看过用过一次就可以记住了,一维数组估计大家经常用到,但是 ...
- JavaScript -- 定义二维数组
方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],["1-1"," ...
- 【转】java中定义二维数组的几种写法
原文链接 注:以下的 type[][] var 也可以这样申明 type var[][] type为数组的类型,var为变量名 写法一:行列固定的数组 //定义二维数组写法1 class Test { ...
- c指针与数组,传参问题,指针数组与数组指针的区别,二维数组动态内存分配
一 数组的结构:顺序存储,看谭浩强中的图,牢记 1.数组名指代一种数据结构:数组 现在可以解释为什么第1个程序第6行的输出为10的问题,根据结论1,数组名str的内涵为一种数据结构,即一个长度为10的 ...
- java 数组基础学习(一维二维数组)
1.一维数组 1>静态初始化:数据类型[ ] 变量名 = {元素} 例:int[ ] arr = {1,2} 动态初始化:数据类型[ ] 变量名 = new数据类型[数据长度] 例:int[ ] ...
- C语言malloc函数为一维,二维,三维数组分配空间
c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...
- 【C语言入门教程】4.2 二维数组
C 语言允许使用多维数组,即使用多组小标的数组,二维数组是最常用的多维数组.多维数组在内存中存放数据的顺序与一维数组相同,使用连续的存储单元. 4.2.1 二维数组的一般形式 二维数组的一般声明形式为 ...
- C语言程序,找出一个二维数组的鞍点。
什么是鞍点????? 鞍点就是在一个二维数组中,某一个数在该行中最大,然而其在该列中又是最小的数,这样的数称为鞍点. 昨天突然在书上看到这样的一道题,就自己尝试着写了一个找出一个二维数组中的鞍点. 好 ...
- c语言题目:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点
//题目:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小.也可能没有鞍点. // #include "stdio.h" #include <stdli ...
- 【C语言】构造长度可变的二维数组
#include <stdio.h> #include <malloc.h> #include <memory.h> int getArray(int ***p,i ...
随机推荐
- 百度统计API的使用
百度统计API的使用 在搭建自己博客的时候,希望自己能有个日志系统,能够看到PV.UV等信息,同时自己也搭建了个ELK系统,可惜服务器配置太低(1GHZ+1G内存),根本运行不起来.只能使用第三方的日 ...
- AngularJS模块
方式一: <body ng-app="myApp"> <div ng-controller="myCtrl1"> <h1>{ ...
- 6位密码框js
!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" content=&quo ...
- I/O多路复用之epoll实战
概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程 通俗理解(摘自网上一大神) 这些名词比较绕口,理解涵义就好.一个epoll场景:一个酒吧服务员(一个线程),前 ...
- Ionic Demo 解析
Ionic Demo 解析 index.html 解析 1.引入所需要的类库 <link rel="manifest" href="manifest.json&qu ...
- Java异常体系简析
最近在阅读<Java编程思想>的时候看到了书中对异常的描述,结合自己阅读源码经历,谈谈自己对异常的理解.首先记住下面两句话: 除非你能解决这个异常,否则不要捕获它,如果打算记录错误消息,那 ...
- Unity-奥义技能背景变黑效果
[旧博客转移 - 2016年8月29日 12:51 ] 前段时间做了一个放技能的时候,背景缓慢变黑,放完后再变回来的效果,可以很好的突出技能特效的感觉. 算是一种屏幕后期特效,这个特效说难不难,说简单 ...
- 平板点餐软件编程体会---记我的Android编程之路
前言 想开发一个平板点餐系统,研究下陈江根大侠分享的一个很高水准的实例,只是个单机版无实用意义. (如需运行源码请回复联系邮箱) 实现 Mysql 数据库+Tomcat WEb服务器,使用Servle ...
- shell脚本中字符串的常见操作及"command not found"报错处理(附源码)
简介 昨天在通过shell脚本实现一个功能的时候,由于对shell处理字符串的方法有些不熟悉导致花了不少时间也犯了很多错误,因此将昨日的一些错误记录下来,避免以后再犯. 字符串的定义与赋值 # 定义S ...
- 如何在通过knockout数据绑定的DOM元素上添加事件
通过knockout数据绑定的DOM元素,通过chrome控制台打断点知道,DOM元素会被暂时隐藏,使用document.querySelector()是获取不到的,会显示null,直到数据绑定完成才 ...