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. python appium笔记(一):appium android环境配置及示例

     (一) 简介 Appium是一个开源的自动化测试框架,可以用来测试基于iOS.Android和Firefox OS平台的原生和混合应用.该框架使用Selenium Webdriver,在执行测试时和 ...

  2. windows10局域网实现文件共享

    1.共享文件夹设置: 磁盘文件夹,鼠标右键 选择高级共享 如图,自定义选项: 控制面板中添加新用户,一定给设置一个密码(远程登录时候用) 用户: * windows键+R * \\IP地址\目录 * ...

  3. HTTP 错误 401.3 - Unauthorized asp.net mvc 图片,css,js没有权限访问

    一.在服务器上发布了一个asp.net的网站,结果是页面可以显示,但是css,js,images无法访问,报错是没有权限,HTTP 错误 401.3 - Unauthorized 二.根据以往的经验, ...

  4. MySQL复制 slave_exec_mode 参数IDEMPOTENT 说明

      背景: 今天无意当中看到参数slave_exec_mode,从手册里的说明看出该参数和MySQL复制相关,是可以动态修改的变量,默认是STRICT模式(严格模式),可选值有IDEMPOTENT模式 ...

  5. 乘风破浪:LeetCode真题_034_Find First and Last Position of Element in Sorted Array

    乘风破浪:LeetCode真题_034_Find First and Last Position of Element in Sorted Array 一.前言 这次我们还是要改造二分搜索,但是想法却 ...

  6. 题解 P1034 【矩形覆盖】

    题面 在平面上有n个点(n≤50),每个点用一对整数坐标表示.例如:当n=4时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4(0,7),见图一. 这些点可以用k个矩形(1≤ ...

  7. word怎样从第三页开始设置页码

    一般的文件都是有封面,目录.然后才是正文.所以基本上第一页的封面,第二页是目录,第三页才是正文的开始.但是默认的页码会从第一页开始的,封面上海有页码这会很难看,今天和小编一起来看看怎样将页码从第三页开 ...

  8. Failed to abandon session scope: Connection timed out

    系统log 出现  Failed to abandon session scope: Connection timed out  错误, reboot无法重启 解决办法就是让postfix只用IPv4 ...

  9. Ubuntu安装 Alisql编译安装步骤:

    github地址: https://github.com/alibaba/AliSQL 一.直接git下载保存到本地: git clone https://github.com/alibaba/Ali ...

  10. PAT B1030 完美数列 (25 分)

    给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列. 输入格 ...