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 Django框架笔记(五):模型

    #前言部分来自Django Book (一)    前言 大多数web应用本质上: 1. 每个页面都是将数据库的数据以HTML格式进行展现. 2. 向用户提供修改数据库数据的方法.(例如:注册.发表评 ...

  2. Appium环境搭建python篇(mac系统)

    1.安装Appium 通过终端安装: 安装nodejs,下载地址:https://nodejs.org/download/,安装完成后打开终端输入node -v,检查是否安装成功 安装npm,打开终端 ...

  3. Oracle EBS INV 释放保留

    CREATE or REPPLACE PROCEDURE RelieveReservation AS -- Common Declarations l_api_version NUMBER := 1. ...

  4. 解决:Tomcat 局域网IP地址 访问不了

    解决:Tomcat 局域网IP地址 访问不了 2014年10月17日 ⁄ 综合 ⁄ 共 1000字 ⁄ 字号 小 中 大 ⁄ 评论关闭 如果连最基本的localhost:8080都失败的话. 原因就一 ...

  5. SendMessage,BroadcastMessage

    三者比较 用于向某个GameObject发送一条信息,让它完成特定功能.其实本质是调用绑定GameObject里面的Script里面的函数,可以跨语言的,例如Javascript可以调用C#的函数,我 ...

  6. 美式九球比赛规则 (Nine-ball)

    九球比赛规则 (Nine-ball) 九球比赛规则 一.器材: 1.台面规格: a.内沿长254厘米. b.内沿宽127厘米. c.高80厘米. d.角袋口内沿最近距离为10.5厘米(±1毫米),腰袋 ...

  7. 使用环信开发项目遇到错误提示 configure your build for VectorDrawableCompat

    问题描述:在使用AndroidStudio开发项目时,使用环信重写了聊天界面后,运行时app就崩掉了,查看日志报告,提示报错如下: java.lang.RuntimeException: Unable ...

  8. VS2008 开发wince程序设备调试

    今天之前开发的一个wince程序,用户反馈报错,由于很久没玩了,从用户那里拿来设备.结果怎么调试的忘记了.在网上找了些资料,自己有摸索了一下.才搞定. 1.安装Microsoft ActiveSync ...

  9. WaitForMultipleObjects

    WaitForMultipleObjects是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象 函数原型为: DWORD WaitForMultipleObjec ...

  10. IE 8 下sharepoint 2013 难看的字体的解决方案

    将 corev15.css 中的有关"Segoe UI","Segoe",Tahoma,移除即可. 一共二处 C:\Program Files\Common F ...