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 ...
随机推荐
- cURL的运用,文字替换
<?php /** * 实例描述:在网络上下载一个网页并把内容中的“百度”替换为“谷歌”之后输出 */ $curl_obj = curl_init(); // 初始化 curl_setopt($ ...
- empty 和isset的差别
都可以判定一个变量是否为空:都返回boolean类型,即true或false.isset()用来检测变量是否设置,只能用于变量,因为传递任何其它参数都将造成解析错误.若想检测常量是否已设置,可使用 d ...
- flex sqlite基本用法
flex sqlite基本用法 页面 <?xml version="1.0" encoding="utf-8"?> <s:WindowedAp ...
- 从Java熟练到Android入门
刚刚从学校出来,唉,从Java转入Android. 当初老师告诉我们Android不重要,结果,Android的所有课不是在玩手机就是在说话,没认真听也没认真看,作业也没认真做,现在想想好后悔啊,以至 ...
- 用maven创建工程
用maven创建工程 开始 mvn archetype:generate 遇到问题:冗长的工程原型列表和等待时间 改进 mvn archetype:generate -DarchetypeCatalo ...
- java基础系列--Date类
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/7126930.html 1.Date类概述 Date类是从JDK1.1就开始存在的老类,其提 ...
- python - bilibili(四)抓包数据乱码
上一篇文章中不知道大家发现端倪木有,两张照片对比很明显发现第一张是信息很明显的,第二张是乱码的. 为什么会出现这种情况?细心的童鞋可能发现是我们发送给服务器的请求连接的数据不同: 第一张图的信息是{& ...
- JavaWeb 后端 <十一> 之 DBUtils 框架 (基本使用 结果集 事务处理 对表读取)
一.数据库操作框架 1.ORM:Object Relation Mapping Hibernate:非常流行 JPA:Java Persistent API.ORM标准 MyBatis:2010年开始 ...
- voa 2015 / 4 / 14
Even with falling oil prices and strong U.S. growth, the head of the International Monetary Fund sai ...
- flume 1.7在windows下的安装与测试
一.安装 安装java,配置环境变量. 安装flume,下载地址,下载后直接解压即可. 二.运行 创建配置文件:在解压后的文件 apache-flume-1.7.0-bin\conf下创建一个exam ...