程序设计基础--C语言【五】

数组

目录

数组

5.1.一维数组

5.1.1.一维数组的引用

5.1.2.一维数组的初始化

5.1.3.一维数组的程序举例

5.2.二维数组

5.2.1.二维数组的定义

5.2.2.二维数组的引用

5.2.3.二维数组的初始化

5.2.4.举例

5.3.字符数组与字符串

5.3.1.字符组的初始化

5.3.2.字符数组的输入输出


5.1.一维数组

数组元素只有一个下标

类型说明符 数组名[表达式]

例如:int array[5] 定义了5个整型元素的一维数组。元素下标从0开始,所以它最后一个元素是array[4]

5.1.1.一维数组的引用
数组名[下标]

array[3]=1 赋值

下标可以是整型常量或整型表达式,像:array[4-1]相当于array[3]

5.1.2.一维数组的初始化
  1. 定义数组是对全部数组元素赋值                                                                                                int arr[5]={0,1,2,3,4};
  2. 只给一部分赋值                                                                                                                          int arr[8]={0,1,2,3,4}
  3. 对数组的全部元素赋值是,数组长度可以默认                                                                           int arr[]={0,1,2,3,4}与上1等价
  4. 指定初始化项目                                                                                                                           int arr[6]={0,0,0,0,0,12}等价与int arr[6]={[5]=12}
5.1.3.一维数组的程序举例

【程序案例】求数列1,1,2,3,5,8...的前40个数

F1=1

F2=1

Fn=F(n-1)+F(n-2)   (n>=3)

数组可以写作:f[i]=f[i-1]+f[i-2];

#include <stdio.h>
#include <stdlib.h>int main()
{int f[40]={1,1};int i;for(i=2;i<40;i++)f[i]=f[i-2]+f[i-1];for(i=0;i<40;i++){if(i%4==0)printf("\n");printf("%12d",f[i]);}printf("\n");return 0;
}

运行结果:

【例2】输入5个数,找出最大值最小值和平均数

#include <stdio.h>
#include <stdlib.h>int main()
{float num[5],max,min,sum=0,ave;int i;for(i=0;i<5;i++)scanf("%f",&num[i]);max=min=num[0];for(i=0;i<5;i++){if(num[i]<min)min=num[i];if(num[i]>max)max=num[i];sum=sum+num[i];
}
ave=sum/5;
printf("最大值:%.2f\n最小值:%.2f\n平均数:%.2f\n",max,min,ave);return 0;
}

运行结果:

【❤冒泡排序法排列】(升序排列)

#include<stdio.h>
int main()
{float score[5],temp;int i,j;for(i=0;i<5;i++)scanf("%f",&score[i]);for(i=1;i<5;i++)/*外层循环控制趟数n个数需要n-1趟*/for(j=0;j<5;j++)/*内层循环控制次数n个数需要n次·*/{if(score[j]>score[j+1]){/*交换两数的值*/temp=score[j];score[j]=score[j+1];score[j+1]=temp;}}for(i=0;i<5;i++)printf("%7.2f",score[i]);printf("\n");return 0;}

运行效果:

5.2.二维数组

5.2.1.二维数组的定义

格式:

类型说明符 数组名[表达式1][表达式2]

例如:

float array[3][4]

定义了一个3*4的(3行4列),共12个元素的数组。

5.2.2.二维数组的引用
数组名[下标1][下标2]

第一个下标数可以省略第二个不行。

5.2.3.二维数组的初始化

与一维数组类似。

5.2.4.举例

将二维数组a的行和列的元素存到另一个二维数组b中去

例如:

a为:

1     2     3

4     5     6

b为:

1        4

2        5

3        6

#include<stdio.h>
#include <stdlib.h>
int main()
{int a[2][3]={{1,2,3},{4,5,6}};int b[3][2],i,j;for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("\n");}for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%5d",b[i][j]);printf("\n");}return 0;}

运行效果:

【❤杨辉三角】

#include<stdio.h>
#include <stdlib.h>
int main()
{int arr[10][10],i,j;for(i=0;i<10;i++){arr[i][0]=1;arr[i][i]=1;for(j=1;j<i;j++)arr[i][j]=arr[i-1][j-1]+arr[i-1][j];}for(i=0;i<10;i++){for(j=0;j<=i;j++){printf("%5d",arr[i][j]);}printf("\n");}return 0;}

运行效果:

5.3.字符数组与字符串

5.3.1.字符组的初始化

 1.逐个字符初始化:char str[6]={'H','e','l','l','o','\0'};

可以写做:char str[]={'H','e','l','l','o','\0'};           元素为6个

但是不能写成:char str[]={'H','e','l','l','o'};         元素为5个,只能视作大小为5的字符数组,而不能认为是一个字符串。

2.用字符串常量初始化字符数组

char str[6]={"Hello"};

char str[6]="Hello";

两个都是对的。

char str[5]="Hello";是错的。

二维字符数组中,第一维数组长度表示字符串个数;第二维数组长度表示最长字符串的设定。

同样第一维可以省略。

5.3.2.字符数组的输入输出

1.以%c的格式逐个输入输出字符

%c会将空格回车或tab键作为有效字符输入

2.以%s的格式将字符串作为一个整体输入输出
以%s格式输入字符是,空格回车或tab键字符串输入结束标志。

由于字符数组名就是数组的首地址,所以输入%s时前面不用加&。

遇到\0就结束。

3.使用字符处理函数gets()和puts()把字符串作为一个整体输入输出。

char str[13];
gets(str);
puts(str);

输入字符串中若包括空格,Tab键,均能正常输入,仅以回车作为字符串输入结束的标志。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/5759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【介绍下大数据组件之Storm】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

MySQL-分页查询

MySQL分页查询 MySQL 分页查询原则&#xff1a; 在 MySQL 数据库中使用 LIMIT 子句进行分页查询。MySQL 分页中开始位置为 0。分页子句在查询语句的最后侧。 LIMIT子句 SELECT 投影列 FROM 表名 WHERE 条件 ORDER BY LIMIT 开始位置&#xff0c;查询数量;示例&#xff1a; …

Delta lake with Java--利用spark sql操作数据2

上一篇文章尝试了建库&#xff0c;建表&#xff0c;插入数据&#xff0c;还差删除和更新&#xff0c;所以在这篇文章补充一下&#xff0c;代码很简单&#xff0c;具体如下&#xff1a; import org.apache.spark.sql.SaveMode; import org.apache.spark.sql.SparkSession;publi…

C++ | Leetcode C++题解之第62题不同路径

题目&#xff1a; 题解&#xff1a; class Solution { public:int uniquePaths(int m, int n) {long long ans 1;for (int x n, y 1; y < m; x, y) {ans ans * x / y;}return ans;} };

附录6-4 黑马优购项目-分类和购物车

目录 1 分类 1.1 接口 1.2 窗口限制 1.3 选中状态样式判断 1.4 点击左侧时右侧会到顶点 1.5 源码 2 购物车 2.1 store 2.2 tabBar徽标 2.3 滑动删除 2.4 结算 2.4.1 结算前登录 2.4.2 结算功能 2.5 触发组件事件 2.6 源码 1 分类 分类最上部是…

11【PS Blender 作图】场景作图 景深

【问题背景】 看下图,是一个插画师的作图,是不是好像现实场景;合理利用景深,让画面好像是3D现实场景 那么如何才能完成这样让人身临其境的画面呢? 大体有两个方法: 【1】2D插画,合理利用景深;如用PS画图,在画图的时候注意 画面构图,让2D的画面,看起来像3D 缺点…

小程序wx.getlocation接口如何开通?

小程序地理位置接口有什么功能&#xff1f; 随着小程序生态的发展&#xff0c;越来越多的小程序开发者会通过官方提供的自带接口来给用户提供便捷的服务。但是当涉及到地理位置接口时&#xff0c;却经常遇到申请驳回的问题&#xff0c;反复修改也无法通过&#xff0c;给的理由…

【免费Java系列】大家好 ,今天是学习面向对象高级的第二天点赞收藏关注,持续更新作品 !

day02——面向对象高级 今天我们继续学习面向对象的语法知识&#xff0c;我们今天学习的主要内容是&#xff1a;多态、抽象、接口。 学会这些语法知识&#xff0c;可以让我们编写代码更灵活&#xff0c;代码的复用性更高。 一、多态 接下来&#xff0c;我们学习面向对象三大…

一文理解前端如何调用后端(java)方法

阅读完文章大约需要3~5分钟 文章目录 一、什么是后端方法路径&#xff1f;二、ajax、axios调用后端方法总结 一、什么是后端方法路径&#xff1f; 这里针对的是 java 后端项目中在 controller 文件夹中的类文件&#xff0c;这类文件的后缀一般都会带有 controller&#xff0c…

Pyspark+关联规则 Kaggle购物篮分析案例

数据集地址&#xff1a;Market Basket Analysis | Kaggle 我的NoteBook地址&#xff1a;pyspark Market Basket Analysis | Kaggle 零售商期望能够利用过去的零售数据在自己的行业中进行探索&#xff0c;并为客户提供有关商品集的建议&#xff0c;这样就能提高客户参与度、改…

【算法刷题日志】模板 前缀和 | C++题解和代码

题目链接&#xff1a;https://www.starrycoding.com/problem/7 题目描述 给定义一个数组 a a a&#xff0c;有 q 1 q1 q1次询问&#xff0c;对于每次询问&#xff1a; 给定两个整数 l , r l, r l,r&#xff0c;求出 a l a l 1 . . . a r a_l a_{l 1} ... a_{r} al​…

GAI工具哪家强?(ChatGPT 4 vs 文心一言)

开始之前&#xff0c; 先来看看 GAI和AI的区别和关系。 AI 和GAI AI 和GAI的概念 AI&#xff08;Artificial Intelligence&#xff09;是人工智能的缩写&#xff0c;是计算机科学的一个分支&#xff0c;旨在使机器像人类一样进行学习和思考。AI技术的研究领域包括机器人、语…

[Python基础知识]05函数和模块

一、函数的定义 格式&#xff1a;def 函数名&#xff08;参数列表&#xff09;: 注&#xff1a; 函数代码块以 def 关键词开头&#xff0c;后接函数标识符名称和圆括号()。即使该函数不需要接收任何参数&#xff0c;也必须保留一对空的圆括号 函数形参不需要声明其类型&#x…

云计算技术概述_1.云计算相关概念

1.关于IBM“蓝云&#xff08;Blue Cloud&#xff09;”计划 IBM 推出的“蓝云&#xff08;Blue Cloud&#xff09;”计划为客户带来即可使用的云计算(Cloud Computing)。它包括一系列的云计算产品&#xff0c;使计算不仅仅局限在本地机器或远程Server Farms&#…

9U_VPX信号处理机,传感器大数据异构计算平台

9U_VPX信号处理机 1 介绍 1.1 产品概述 9U_VPX信号处理机是一款面向前端射频系统的高速记录、存储和处理系统。信号处理机为应对军用电子信息系统面临的目标种类多样化、战场环境复杂化、执行任务多元化等多重难题&#xff0c;而研发出来的***数据记录存储系统。信号处理机担…

用LM Studio搭建微软的PHI3小型语言模型

什么是 Microsoft Phi-3 小语言模型&#xff1f; 微软Phi-3 模型是目前功能最强大、最具成本效益的小型语言模型 &#xff08;SLM&#xff09;&#xff0c;在各种语言、推理、编码和数学基准测试中优于相同大小和更高大小的模型。此版本扩展了客户高质量模型的选择范围&#x…

初识java——javaSE(2)--运算符【求个关注】

文章目录 一 运算符1.1 算术运算符当两个不同类型的值相加时&#xff1a;/ 运算符%运算符 1.2 关系运算符1.3 逻辑运算符短路&#xff1a;逻辑非 1.4 位运算符&|^位运算符当作逻辑运算符中使用 ~>><<>>> 1.5 赋值运算符1.6 三目运算符 一 运算符 1.1…

数据库(MySQL)—— DQL语句(聚合,分组,排序,分页)

数据库&#xff08;MySQL&#xff09;—— DQL语句&#xff08;聚合&#xff0c;分组&#xff0c;排序&#xff0c;分页&#xff09; 聚合函数常见的聚合函数语法 分组查询语法 排序查询语法 分页查询语法 DQL的执行顺序 我们今天来继续学习MySQL的DQL语句的聚合和分组查询&…

c++容器与算法概述

容器与算法 每个标准库容器都提供了begin() end() 函数&#xff0c;分别返回容器的头部位置和尾部位置。 I/O 流 对于自定义的类型&#xff1a; struct Entry {std::string name;int number;};如果需要使用标准输出需要重载<< 运算符&#xff0c;特别注意&#xff1a…

《Redis使用手册之Lua脚本》

《Redis使用手册之Lua脚本》 EVAL&#xff1a;执行脚本 127.0.0.1:6379> eval “return ‘hello world’” 0 “hello world” 127.0.0.1:6379> eval “return redis.call(‘set’,KEYS[1],ARGV[1])” 1 “message” “hello world” OK 127.0.0.1:6379> get message…