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 ...
随机推荐
- php通过cURL下载网络上面的一个HTTPS的资源
<?php /** * php通过cURL下载网络上面的一个HTTPS的资源 * 案例:从google的CDN上下载jquery- v1.7.1 */ $curlobj = curl_init( ...
- Java程序设计---io流读取文件内容并将其逆值输出到控制台
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileR ...
- Python读入CIFAR-10数据库
CIFAR-10可以去http://www.cs.toronto.edu/~kriz/cifar.html下载(记得下载python格式) CIFAR-10数据组成: 训练集和测试集分别有50000和 ...
- window.onload的加载和$(document).read()
1.执行时机: window.onload :必须等到网页中所有的内容加载完之后才执行. $(document).read():网页中所有的DOM结构执行完毕后.可能DOM元素并未加载完. 2.单个网 ...
- C# 校验帮助类-正则表达式
一.简介 很多时候我们都需要用到一些验证的方法,有时候需要用正则表达式校验数据时,往往需要到网上找很久,结果找到的还不是很符合自己想要的.所以我把自己整理的校验帮助类分享处理,在这里分享一下,给自己留 ...
- LINQ TO SQL和Entity Framework 的关系 你了解多少?
1. LINQ TO SQL 和EF 特点: LINQ TO SQL和Entity Framework都是一种包含LINQ功能的ORM 也就是所谓的关系对象的映射.其中包括的有DBFrist ...
- tp5实现邮件发送
项目中,用户修改密码,需要发送验证码到用户邮箱,于是就看了看,在此记录一下. 1.开启SMTP服务 测试用的是自己的qq邮箱,首先需要开启邮箱的SMTP服务,开启之后,要记得给你的授权码,授权码一定要 ...
- Python-Flask:利用flask_sqlalchemy实现分页效果
Flask-sqlalchemy是关于flask一个针对数据库管理的.文中我们采用一个关于员工显示例子. 首先,我们创建SQLALCHEMY对像db. from flask import Flask, ...
- gulp静态资源构建、压缩、版本号添加
公司移动端商城使用前后分离方案,前台nginx静态文件,js使用requirejs模式,使用gulp压缩添加版本号时发现问题, 问题1.在公共的js配置中,引用的路径是写死的,缓存会一直存在. 解决方 ...
- JS - 实现简单易用的倒计时 x 天 x 时 x 分 x 秒
<script> (function () { var tian = document.getElementsByClassName('JS-tian')[0]; var shi = do ...