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. Java:基本数据类型与类型转换

    相关内容: 基本数据类型 整型 浮点型 字符型 布尔型 数据类型转换 数组 首发时间:2017-06-22 21:18 修改时间: 2018-03-16 15:40  :修改了一下文字布局和样式,增加 ...

  2. springMvc之文件上传与下载

    我们经常会使用的一个功能是文件下载,既然有文件下载就会有文件上传,下面我们来看一下文件上传是如何实现的 首先准备好一个页面 <style type="text/css"> ...

  3. MySQL-死锁查询

    1.查询是否锁表 show OPEN TABLES where In_use > 0; 查询到相对应的进程 === 然后 kill    id 2.查询进程 show processlist 补 ...

  4. 在TortoiseSVN使用clean up

    1.在[Cleanup]窗体中勾选中复选框[Clean up working copy status],选中该复选框表示解除锁定. 2.在[Cleanup]窗体中勾选中复选框[revert all c ...

  5. [翻译] 提升树算法的介绍(Introduction to Boosted Trees)

    [翻译] 提升树算法的介绍(Introduction to Boosted Trees) 1. 有监督学习的要素 XGBoost 适用于有监督学习问题.在此类问题中,我们使用多特征的训练数据集 \(x ...

  6. JAVA随机数之多种方法从给定范围内随机N个不重复数

    一.JAVA中生成随机数的方式 1.在j2se中使用Math.random()令系统随机选取一个0~1之间的double类型小数,将其乘以一个数,比如25,就能得到一个0~25范围内的随机数,这个在j ...

  7. MongoDB中_class字段的作用

    我们知道,如果你用Java的Sping Data 框架映射Pojo为MongoDB数据时,数据库中会自动给你添加一个_class字段,那这个字段是干嘛用的呢?我们可以不可以不要这个字段呢? 直接上结论 ...

  8. 解决Windows Server2008 R2中IE开网页时弹出阻止框

    使用Windows Server2008,用IE打开网站时会弹出“Internet Explorer增强安全配置正在阻止来自下列网站的此应用程序中的内容”的对话框.如下图所示: 2011-10-14_ ...

  9. html简单介绍(二)

    表格 table标签:border:表示边框的大小 <table border="1"> <tr> <td>row(行1), cell(列1)& ...

  10. jQuery UI dialog插件出错信息:$(this).dialog is not a function

    使用jQuery UI 1.7.2 dialog插件,遇到这样的错误: [img]http://dl.iteye.com/upload/attachment/308166/97c428e4-2ce2- ...