数组跟变量的区别?

数组是可以在内存中连续存储多个元素的结构,所有元素必须属于相同类型。

格式:元素类型 数组名[元素个数];

数组的特点: 只能存放单一元素的数据,里面存放的数据成为元素。

数组的声明:声明数组的类型 ,声明数组的元素个数

变量是可以在内存中存储一个数据的结构。

格式: 元素类型 变量名。

声明变量: Datatype varialename;

定义时初始化变量:Datatype varialename= value;

定义后初始化变量:varialename=value;

数组的简单使用:

初始化:int age[5]={1,2,3,4,5,};

元素由顺序之分,每个元素都有唯一的下标(索引 ),从0开始。

可以声明的元素个数不使用,int a[3] = {1,2}

可以不声明元素个数:int a[] = {1, 2, 3};

错误使用:

int a[];无数组数据

int[4] a;元素个数在元素名前面,JAVA语言中允许

int a[b];不是元素类型

a = {10, 11};没声明元素类型

示例:

//声明数组;数据类型 数组名[数组长度]

int scores[5];

//为数组赋值:数组名[下标]=值;--->下标从0开始

scores[0]=10;

scores[1]=20;

scores[2]=30;

scores[3]=40;

scores[4]=50;

//获取数组中的元素,数组名[下标]

printf("%d,%d,%d,%d,%d\n",scores[0], scores[1],scores[2],scores[3],scores[4] );

//声明赋值一步完成;数据类型 数组名[长度]={值1,值2,值3}; 对应的个数应和元素个数对应

int nums[5]={1,2,3,4,5};

printf("%d,%d,%d,%d,%d\n",nums[0],nums[1],nums[2],nums[3],nums[4]);

int arr[10]={1,2,3,4,5};//6个元素未赋值将使用默认值0

int arr[] = {9,8,7};//正确 ,未指定数组的长度(数组长度取决于元素的个数)

示例:让用户输入5个成绩,根据用户输入的成绩计算最高分,最低分和平均分

int scores[5];//声明5个用于存储用户输入的成绩

int sun=0,avg;//总成绩,平均值

int max,min;//最大值,最小值

int i;

//循环获取用户输入的成绩,并将其输入成绩保持到数组中

for(i=0;i<5;i++){

printf("请输入第%d个人成绩:",i+1);

scanf("%d",&scores[i]);

sum+=scores[i]; //计算总成绩

}

avg=sum/5;//计算平均成绩

min=max=scores[0];//假设第一个人的成绩是最高分,最低分

for(i=1;i<5;i++){

if(scores[i]>max){//获取最高分

max=scores[i];

}

if(scores[i]<min){//获取最低分

min=scores[i];

}

}

printf("平均分为:%d,最高分是%d,最低分%d\n",avg,max,min);

冒泡排序;由小到大

int num[]={2,5,9,7,15};//定义一个数组,数组中可无元素个数

int i,j,temp;//定义变量

//外层控制比较的轮数(N-1)

for(i=0;j<4;i++){

//内层循环控制每轮比较的次数

for(j=0;j<4-i;j++){

if(num[j]>num[j+1]){//比较最大值

temp=num[j];//使用中间变量换位置

num[j]=num[j+1];

num[j+1]=tem;

}

}

}

printf("排序后的数字为:");

//利用循环遍历输出

for(i=0;i<5;i++){

printf("%d\t",nums[i]);

}

二维数组可以看成由一维数组嵌套

二维数组: 一维数组中的值为一个数组.

声明: 数据类型 数组名[rowsize][colsize];

int nums[5][6];

声明并赋值:

int nums[4][2]={{10,11},{20,21),{30,31},{40,41}}; 正确

int nums[][2]={{10,11},{20,21),{30,31},{40,41}}; 正确

int nums[4][]={{10,11},{20,21),{30,31},{40,41}}; 错误

示例:声明一个三行三列的二维数组用于保持用户输入的整型数据,打印用户输入的数据并计算对角线之和

int num[3][3];

int i,j,k=0;

//循环获取用户输入的数据,并将其数据保存到二维数组中

for(i=0;i<3;i++)

{

for(j=0;j<3;j++){

printf("请输入第%d行第%d列数据\n",i+1,j+1);

scanf("%d",&nums[i][j]);//获取用户输入值

}

}

//循环遍历二维数组的数据,并打印成矩形

for(i=0;i<3;i++){

for(j=0;j<3;j++){

printf("%d\t",nums[i][j]);

if(i==j){

sum+=nums[i][j];

}

}

printf("\n");

}

printf("二维数组对角线之和为%d",sum);

C语言基础五 数组的更多相关文章

  1. C语言基础五 数组的应用

    .根据用户输入的10人成绩并将其保存到数组中,求最高成绩,最低成绩和平均成绩 int scoure[10];//存储10个数据的数组 int i; int sum;//总成绩 int max,min, ...

  2. C语言基础知识-数组和字符串

    C语言基础知识-数组和字符串 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组概述 在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来的方式我们称为数组 ...

  3. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  4. Java之--Java语言基础组成—数组

    Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...

  5. Go语言基础之数组

    Go语言基础之数组 本文主要介绍数组(array)及它的基本使用. Array(数组) 数组是同一种数据类型元素的集合. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化 ...

  6. 第二十四节:Java语言基础-讲解数组的综合应用

    数组的综合应用 // 打印数组 public static void printArray(int[] arr) { for(int x=0;x<arr.length;x++) { if(x!= ...

  7. GO学习-(8) Go语言基础之数组

    Go语言基础之数组 Array(数组) 数组是同一种数据类型元素的集合. 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化. 基本语法: // 定义一个长度为3元素类型为 ...

  8. go语言基础之数组比较和赋值

    1.go语音基础之数组比较和赋值 示例: package main //必须有个main包 import "fmt" func main() { //支持比较,只支持 == 或 ! ...

  9. js脚本语言基础和数组

    js和PHP中,字符串赋值:要使用"双引号"或"单引号"引起来:例如:var c="你好"不同类型进行数学运算,要转换,类型转换:强制转换p ...

随机推荐

  1. App的基本结构

    今天主要学习安装了Android Studio,并且成功地在虚拟机上运行了HelloWord工程.下面针对HelloWord工程对app的基本框架结构进行一个总结.掌握app的基本结构对初学软件开发的 ...

  2. Java入门 - 语言基础 - 05.基本数据类型

    原文地址:http://www.work100.net/training/java-basic-datatype.html 更多教程:光束云 - 免费课程 基本数据类型 序号 文内章节 视频 1 概述 ...

  3. 机器学习环境配置系列二之cuDNN

    1.下载cuDNN 前往: NVIDIA cuDNN home page. 进入下载 勾选Nvidia的协议复选框(流氓的选择,不勾选不能下载) 选择与安装的cuda版本一致的cudnn进行下载. 2 ...

  4. UVA 最大面积最小三角形剖分

    点击打开题目 题目大意: 以顺时针或逆时针给出一个简单多边形的n个点的坐标,用n-2条互不相交的,且与边不相交的对角线,分成n-2个三角形,要求其中最大三角形的面积最小 开始还汪星人咬乌龟,无从下口, ...

  5. 开源项目SMSS发开指南(四)——SSL/TLS加密通信详解

    本文将详细介绍如何在Java端.C++端和NodeJs端实现基于SSL/TLS的加密通信,重点分析Java端利用SocketChannel和SSLEngine从握手到数据发送/接收的完整过程.本文也涵 ...

  6. Thumb.db看不到的问题

    今天读取数据集的时候总是会读到一个Thumb.db的缩略图文件,点开查看选项里面的显示隐藏文件.文件夹处于勾选状态,此时文件夹中并不存在此文件. 解决方案: 勾选掉隐藏受保护的操作系统文件即可.

  7. Python PID

    import time class PID: """PID Controller """ def __init__(self, P=0.2, ...

  8. Spring注解开发系列Ⅸ --- 异步请求

    一. Servlet中的异步请求 在Servlet 3.0之前,Servlet采用Thread-Per-Request的方式处理请求,即每一次Http请求都由某一个线程从头到尾负责处理.如果要处理一些 ...

  9. ogg trail文件序列号不一致

    一.Cause 在某些情况下,对于一个已经running的OGG进程,对已同步的数据(正确的同步或者错误的同步)做修改,修改完之后,需要保持一个一致点,从一致点继续同步. 这时需要人工干涉产生一个新的 ...

  10. cd命令和roscd命令的区别,并解决环境变量问题

    cd命令和roscd命令都是切换到指定目录的命令.不同的是,cd是Linux系统的命令,在使用时必须指定目标目录的完整路径:而roscd是ros系统中的命令,它可以直接切换到指定目录(ros系统中的软 ...