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语言中的数据类型 (九)数组的更多相关文章

  1. 2_C语言中的数据类型 (十)数组

    1          字符串与字符数组 1.1       字符数组定义 char array[100]; 1.2       字符数组初始化 char array[100] = {'a', 'b', ...

  2. 2_C语言中的数据类型 (九)逻辑运算符与if语句、switch、条件运算符?、goto语句与标号

    1          条件分支语句 1.1       关系运算符 在C语言中0代表false,非0代表真 1.1.1          < 小于 1.1.2          <= 小于 ...

  3. 2_C语言中的数据类型 (七)printf与scanf

    1          字符串格式化输出和输入 1.1       字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 “”是C语言表达字符串的方式 1.2       ...

  4. 2_C语言中的数据类型 (四)整数与无符号数

    1.1       sizeof关键字 sizeof是c语言关键字,功能是求指定数据类型在内存中的大小,单位:字节 sizeof与size_t类型 1.1       int类型 1.1.1      ...

  5. 2_C语言中的数据类型 (一)2.1.常量和字符串常量

    2.1 常量就是在程序中不可变化的量,常量在定义的时候必须给一个初值. 1.1.1          #define 定义一个宏常量 1.1.2          const 定义一个const常量 ...

  6. 2_C语言中的数据类型 (八)运算符

    1          运算符表达式和语句 1.1       基本运算符 1.1.1          = 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 1 ...

  7. 2_C语言中的数据类型 (二)进制

    1.1       二进制数.位.字节与字 我们习惯于十进制的数:10,12等 一个位只能表示0,或者1两种状态,简称bit,一个位是一个bit 一个字节为8个二进制,称为8位,简称BYTE,8个比特 ...

  8. 2_C语言中的数据类型 (十)while、for

    1          循环语句 1.1       while while(条件),如果条件为真,循环继续,条件为假,循环结束 while (1)..是死循环的写法 1.2       continu ...

  9. 2_C语言中的数据类型 (七)类型限定

    1.1       类型限定 1.1.1          const const是代表一个不能改变值的常量 1.1.2          volatile 代表变量是一个可能被CPU指令之外的地方改 ...

随机推荐

  1. 构建第一个SpringBoot工程

    学习和使用 SpringBoot 有一段时间了,现在开始陆陆续续会总结归纳 SpringBoot 学习中遇到的相关知识点. SpringBoot 设计目的是用来简化新Spring应用的初始搭建以及开发 ...

  2. Problem1-Project Euler

    Problem1-Project Euler Multiples of 3 and 5   If we list all the natural numbers below 10 that are m ...

  3. 关联与下钻:快速定位MySQL性能瓶颈的制胜手段

    本文根据DBAplus社群[2018年1月6日北京开源与架构技术沙龙]现场演讲内容整理而成. 讲师介绍 李季鹏 新炬网络数据库专家 专注于MySQL数据库性能管理及相关解决方案,目前主要从事MySQL ...

  4. MSSQL · 最佳实践 · 利用文件组实现冷热数据隔离备份方案

    文件组的基本知识点介绍完毕后,根据场景引入中的内容,我们将利用SQL Server文件组技术来实现冷热数据隔离备份的方案设计介绍如下. 设计分析 由于payment数据库过大,超过10TB,单次全量备 ...

  5. 某某D的手伸的实在太长了,路由器也未能幸免,致被阉割的TP-Link

    前段时间整了个服务器架上l2tp.server, TP-Link路由连上去后,全网走l2tp通道,而且不能配置相关的路由表 然后研究啊 找啊 查啊,确定是路由没有这功能 找客服问了一下,他一听就懂了, ...

  6. sed和awk学习整理

    Awk和Sed的基本使用 可以用大至相同的方式调用sed 和awk .命令行讲法是:command [options] script filename几乎和所有的unlx程序一样,sed和awk都可以 ...

  7. Chrome 打印PDF技巧

    Chrome 打印PDF技巧 原文地址:https://github.com/zhongxia245/blog/issues/22 欢迎star 本教程,使用Mac电脑进行演示. 常规的Chrome打 ...

  8. 【转】开篇python--明白python文件如何组织,理解建立源文件

    在Python 中引用是非常简单的事情,这里需要清楚三个概念就可以了包.模块.类.类这个就不用说了. 模块对应的是一个.py 文件,那么module_name 就是这个文件去掉.py 之后的文件名,p ...

  9. 6.Solr4.10.3API使用(CURD)

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.在工程中引入solr-solrj-4.10.3.jar <dependency> <gr ...

  10. Maven单独构建多模块项目中的单个模块

    Maven单独构建多模块项目中的单个模块   说明: 1.可能存在的场景,多模块项目没有互相引用,那么此时可以单独构建单个项目,指定到子模块的pom.xml文件即可完成编译. 2.如果多模块项目各自都 ...