2_C语言中的数据类型 (九)数组
1 数组
1.1 一维数组定义与使用
|
int array[10];//定义一个一维数组,名字叫array,一共有10个元素,每个元素都是int类型的 array[0] = 20; array[1] = 30; array[9] = 80; //array[10] = 100;//错误,没有 array[10]这个元素 |
1.2 数组在内存的存储方式
数组在内存中就是一段连续的空间,每个元素的类型是一样的
1.3 一维数组初始化
|
int array[10] = { 100, 1, 5, 3, 4, 5, 6, 7, 8, 0 };//定义数组的同时为数组的成员初始化值 |
|
int array[10] = { 3, 7, 9 };//将数组的前三个元素赋值,其余元素置为0 |
|
int array[10] = { 0 };//将数组所有的元素都置为0 |
|
int i; for (i = 0; i < 10; i++) { array[i] = 0;//通过循环遍历数组的每个元素,将元素的值置为0 } |
1.4 二维数组定义与使用
|
int array[2][3];//定义了一个二维数组,有两个array[3] |
1.5 二维数组初始化
|
int a[3][4] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; |
#include <stdio.h> #pragma warning(disable:4996) int main01()
{
short array[];//定义一个一维数组,名字叫array,一共有10个元素,每个元素都是int类型的 array[] = ;
array[] = ;
array[] = ; //array[10] = 100;//错误,没有 array[10]这个元素 printf("%d\n", array[]); int i;
for (i = ; i < ; i++)
{
array[i] = i;//array[0] = 0;, array[1] = 1, array[9] = 9;
} printf("%p\n", array); return ;
} int main02()//数组初始化
{
//int array[10] = { 100, 1, 5, 3, 4, 5, 6, 7, 8, 0 };//定义数组的同时为数组的成员初始化值
//int array[10] = { 3, 7, 9 };//将数组的前三个元素赋值,其余元素置为0
int array[] = { };//将数组所有的元素都置为0 //printf("%p\n", array);
int i;
for (i = ; i < ; i++)
{
scanf("%d", &array[i]);// = 0;//通过循环遍历数组的每个元素,将元素的值置为0
} for (i = ; i < ; i++)
{
printf("array[%d] = %d\n", i, array[i]);
}
return ;
} int main03()//求数组中最大元素的值,和最大值对应的数组下标
{
int array[] = { , , , , , , , , , };
int max = array[];
int i;
for (i = ; i < ; i++)//想找最大的值,一定要把数组先遍历一遍
{
if (max < array[i])
max = array[i];
}
printf("max = %d\n", max);
return ; } int main04()//求数组中最小元素的值,和最小值对应的数组下标
{
int array[] = { , , , , -, , , , , };
int min = array[];
int index = ;//在没有遍历数组之前,默认数组的第0号元素就是最小的元素
int i;
for (i = ; i < ; i++)//想找最小的值,一定要把数组先遍历一遍
{
if (min > array[i])
{
index = i;
min = array[i];
}
}
printf("min = %d, index = %d\n", min, index);
return ; } int main05()//求数组中所有元素的和
{
int array[] = { , , , , , , , , , }; int i;
int sum = ;//存放数组和的变量
for (i = ; i < ; i++)
{
sum += array[i];
}
printf("sum = %d\n", sum);
return ; } int main06()//求数组中大于平均数的元素和下标
{
int array[] = { , , , , , , , , , }; int i;
int sum = ;//存放数组和的变量
for (i = ; i < ; i++)
{
sum += array[i];
}
int avg = sum / ;
printf("avg = %d\n", avg); for (i = ; i < ; i++)
{
if (array[i] > avg)
{
printf("%d, %d\n", array[i], i);
}
}
return ; } int main()//将数组元素逆置,
{
int array[] = { , , , , , , , , , }; // //int tmp = array[1];//中间变量实现两个值的互换
//array[1] = array[0];
//array[0] = tmp; int min = ;//数组最小下标
int max = ;//数组的最大下标
while (min < max)//两头往中间堵
{
int tmp = array[min];
array[min] = array[max];
array[max] = tmp;
min++;
max--;
} int i;
//for (i = 0; i <= 4; i++)//从头往中间走
//{
// int tmp = array[i];
// array[i] = array[9 - i];
// array[9 - i] = tmp;
//} for (i = ; i < ; i++)
{
printf("array[%d] = %d\n", i, array[i]);
}
return ;
}
#include <stdio.h> int main01()//求100到999之间的水仙花数
{
int i;
for (i = ; i < ; i++)
{
int i1 = i % ;//求个位数
int i2 = i / % ;//求10位数
int i3 = i / ;//求100位数
if ((i1 * i1 * i1 + i2 * i2 * i2 + i3 * i3 * i3) == i)
printf("%d\n", i);
}
return ;
} int main02()//求一个int数组中,所有奇数元素的和
{
int array[] = { , , , , , , , , , };
int i;
int sum = ;
for (i = ; i < ; i++)
{
if ((array[i] % ) == )
{
sum += array[i];
}
}
printf("sum = %d\n", sum);
return ;
} int main()//求从3到100之间所有素数
{
int i;
//素数是除了1和自己以外,不能被其他整数整除的整数
for (i = ; i < ; i++)
{
int j;
int status = ;
for (j = ; j < i; j++)//判断i是否为素数
{
if ((i % j) == )
{
status = ;
break;
}
} if (status == )//代表这是个素数
{
printf("%d\n", i);
}
}
return ;
} //14
//2 ---- 13
#include <stdio.h> int main()
{
//int array[2][3];//定义了一个二维数组,有两个array[3] int array[][] = { { , , }, { , , } };//定义一个二维数组的同时初始化成员
//array[0][0] = 1;
//array[1][0] = 4;
//int array[2][3] = { 0 };//将二维数组中每个元素的值都初始化为0
//array[0][0] = 0;//给第0行,第0列的元素赋值
//array[1][2] = 0;//给第1行,第2列的元素赋值 //int i[3][7];//二维数组更象一个表格 printf("%d\n", sizeof(array[][])); int i, j;
for (i = ; i < ; i++)
{
for (j = ; j < ; j++)
{
printf("array[%d][%d] = %d\n", i, j, array[i][j]);
}
} printf("--------------------------------\n"); int array1[][] = { {, , , , }, {, , , , }, {, , , , } };
for (j = ; j < ; j++)
{
int sum = ;
for (i = ; i < ; i++)
{
sum += array1[i][j];
}
printf("%d\n", sum);//打印列的和
} for (i = ; i < ; i++)
{
int sum = ;
for (j = ; j < ; j++)
{
sum += array1[i][j];
}
printf("%d\n", sum);//打印行的和
} return ;
}
资料来源:传智播客 仅供学习研究
2_C语言中的数据类型 (九)数组的更多相关文章
- 2_C语言中的数据类型 (十)数组
1 字符串与字符数组 1.1 字符数组定义 char array[100]; 1.2 字符数组初始化 char array[100] = {'a', 'b', ...
- 2_C语言中的数据类型 (九)逻辑运算符与if语句、switch、条件运算符?、goto语句与标号
1 条件分支语句 1.1 关系运算符 在C语言中0代表false,非0代表真 1.1.1 < 小于 1.1.2 <= 小于 ...
- 2_C语言中的数据类型 (七)printf与scanf
1 字符串格式化输出和输入 1.1 字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 “”是C语言表达字符串的方式 1.2 ...
- 2_C语言中的数据类型 (四)整数与无符号数
1.1 sizeof关键字 sizeof是c语言关键字,功能是求指定数据类型在内存中的大小,单位:字节 sizeof与size_t类型 1.1 int类型 1.1.1 ...
- 2_C语言中的数据类型 (一)2.1.常量和字符串常量
2.1 常量就是在程序中不可变化的量,常量在定义的时候必须给一个初值. 1.1.1 #define 定义一个宏常量 1.1.2 const 定义一个const常量 ...
- 2_C语言中的数据类型 (八)运算符
1 运算符表达式和语句 1.1 基本运算符 1.1.1 = 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 1 ...
- 2_C语言中的数据类型 (二)进制
1.1 二进制数.位.字节与字 我们习惯于十进制的数:10,12等 一个位只能表示0,或者1两种状态,简称bit,一个位是一个bit 一个字节为8个二进制,称为8位,简称BYTE,8个比特 ...
- 2_C语言中的数据类型 (十)while、for
1 循环语句 1.1 while while(条件),如果条件为真,循环继续,条件为假,循环结束 while (1)..是死循环的写法 1.2 continu ...
- 2_C语言中的数据类型 (七)类型限定
1.1 类型限定 1.1.1 const const是代表一个不能改变值的常量 1.1.2 volatile 代表变量是一个可能被CPU指令之外的地方改 ...
随机推荐
- 白盒测试实践-day....
时间:2017.12.22 地点:软件学院 参与人员:张双双.张玉.周静.赵天宇 会议内容:对代码测试的内容进行总结,总结任务由赵天宇完成,其余同学提出自己的看法和意见. 总结内容分为了五个阶段,不同 ...
- 用 React 整合 LogEntries JavaScript 库
[编者按]本文作者为 David Posin,主要介绍 React 与 LogEntries 间的相互操作.本文系国内 ITOM 管理平台 OneAPM 编译呈现. 众所周知,React.js已经被证 ...
- Python 面向对象补充
什么是面向对象编程 类 + 对象 class 类: def 函数1(): pass def 函数2(): pass obj是对象, 实例化的过程 obj = 类() obj.函数1() 例1 , 某些 ...
- SQLSERVER中的LOB页面简单研究
SQLSERVER中的LOB页面简单研究 这篇文章和我另一篇文章是相辅相成的,在看<SQLSERVER2012 列存储索引的简单研究和测试>这篇文章之前希望大家先看一下这篇文章o(∩_∩) ...
- 使用托管快照创建作为 Azure 托管磁盘存储的 VHD 的副本
创建快照 创建 OS 或数据磁盘 VHD 的快照,以便将其用作备份或用于排查 VM 问题. 快照是 VHD 的完整只读副本. 使用 Azure 门户创建快照 登录到 Azure 门户. 首先在左上角单 ...
- [CENTOS7] 将域群组加入到Sudoer里
文章来源:https://derflounder.wordpress.com/2012/12/14/adding-ad-domain-groups-to-etcsudoers/ Adding AD d ...
- 《SQL Server 2008从入门到精通》--20180724
目录 1.事务 1.1.事务的ACID属性 1.2.事务分类 1.2.1.系统提供的事务 1.2.2.用户自定义的事务 1.3.管理事务 1.3.1.SAVE TRANSACTION 1.3.2.@@ ...
- MySQL crash-safe replication(3): MySQL的Crash Safe和Binlog的关系
2016-12-23 17:29 宋利兵 作者:宋利兵 来源:MySQL代码研究(mysqlcode) 0.导读 本文重点介绍了InnoDB的crash safe和binlog之间的关系,以及2阶段提 ...
- python 多进程和子进程1
多进程的缓冲区 #多进程 process.py from multiprocessing import Process,current_process import time def func1(): ...
- SSL/TLS Diffie-Hellman Modulus <= 1024 位 (LogJam) 使用2048位或更高的Diffie-Hellman
1.http://slproweb.com/products/Win32OpenSSL.html 下载 SSL 并安装 2.设置环境变量,例如工具安装在C:\OpenSSL-Win64,则将C:\O ...