当前位置: 首页 > article >正文

C语言-8.数组

8.1数组

8.1.1初试数组

如何写一个程序计算用户输入的数字的平均数?

#include<stdio.h>
int main()
{int digit;//输入要求平均数的数字double sum=0;//记录输入数字的和int count=0;//记录输入数字的个数printf("请输入一组数字,用来求平均数,以-1结束\n");scanf("%d",&digit);while(digit!=-1)//使用while循环将数字累加到sum中,直到输入-1结束循环{sum+=digit;count++;scanf("%d",&digit);}printf("平均数为%f\n",sum/count);
}

这个代码不需要记录用户输入的每一个数。
如何写一个程序计算用户输入的数字的平均数,并输出所有大于平均数的数?
必须先记录每一个输入的数字,计算平均数之后,再检查记录下来的每一个数字,与平均数比较,决定是否输出
如何记录很多事?
sum1,sum2,sum3…
数组
int number[100];
scanf(“%d”,&number[i]);
数组

#include<stdio.h>
int main()
{int digit;//输入要求平均数的数字int Arr[100];//将输入的数字存入数组int a = 0;//记录输入的数字个数double sum =0;//记录输入数字的和printf("请输入一组数字,用来求平均数,以-1结束\n");for(int i=0;i<100;i++){scanf("%d",&digit);if(digit==-1)//输入-1结束循环break;Arr[a]=digit;a++;//记录输入数字个数sum+=digit;//记录输入数字的和}printf("平均数为%f\n",sum/a);//输出平均数for(int b=0;b<a;b++)//使用for循环遍历数组{if(Arr[b]>sum/a)//输出大于平均数的数字{printf("大于平均数的数字有%d ",Arr[b]);}}return 0;
}

int Arr[100];//定义数组
Arr[a]=digit;//对数组中的元素赋值
Arr[b]>sum/a//使用数组中的元素
printf("大于平均数的数字有%d ",Arr[b]);//遍历数组

8.1.2数组的使用:如何定义和使用数组,数组的下标和下标的范围

定义数组
<类型>变量名称[元素数量]
int grades[100];
double weight[20];
元素数量必须是整数
C99之前:元素数量必须是编译时刻确定的字面量,在C99可以使用变量来确定元素数量
数组
是一种容器(放东西的东西),特点是:
其中所有的元素具有相同的数据类型;
一旦创建,不能改变大小
*(数组中的元素在内存中是连续依次排列的)
int [10]

一个int数组
十个单元:a[0],a[1]…a[9]
每个单元就是一个int类型的变量
可以出现在赋值的左边或右边:
a[2]=a[1]+6;
*在赋值左边的叫做左值
数组的单元
数组的每个单元就是数组类型的一个变量
使用数组时放在[]中的数字叫做下标或索引,下标0开始计数:
grades[0]
grades[99]
average[5]
有效的下标范围
编译器和运行环境都不会检查数组下标是否越界,无论是对数组单元做读还是写
一旦程序运行,越界的数组访问可能造成问题,导致程序崩溃
SEGMENTATION FAULT
但是也可能运气好,没造成严重的后果
所以这是程序员的责任来保证程序只使用有效的下标值:[0,数组的大小-1]
计算平均数
在C99中可以先让用户输入有多少数字要计算,来确定数组的大小
长度为0的数组?
int a[0]
可以存在,但是无用

8.1.3数组的例子:统计个数

#include<stdio.h>
int main()
{const number =10;//定义数组的大小int Arr[number];//定义数组int x;//输入要求统计的数字for(int i=0;i<number;i++)//将数组元素初始化为0{Arr[i]=0;}printf("请输入一组数据,用来统计每一个数字出现的个数:");scanf("%d",&x);//输入数字while(x!=-1)//使用while循环将数字出现的个数存入数组中{Arr[x]++;//将数字出现的个数存入数组中scanf("%d",&x);//输入数字}for(int j=0;j<number;j++)//使用for循环遍历数组{printf("%d:%d\n",j,Arr[j]);//输出数字出现的个数}return 0;}

8.2数组运算

8.2.1数组运算

在一组给定的数据中,如何找出某个数据是否存在?

#include<stdio.h>
int find(int x,int Arr[],int len);
int main()
{int x;//要查找的数字int Arr[]={1,4,2,3,5,0,8,6,7,12,25,47,84
http://www.lryc.cn/news/2379661.html

相关文章:

  • Kotlin Android单元测试MockK指南
  • C# lock
  • 《算法导论(第4版)》阅读笔记:p83-p85
  • Go 后端中双 token 的实现模板
  • 【拥抱AI】Deer-Flow字节跳动开源的多智能体深度研究框架
  • 第六天——贪心算法——字符串分隔
  • Python 条件语句详解
  • 前端获取用户的公网 IP 地址
  • 在Maven中替换文件内容的插件和方法
  • 符合Python风格的对象(再谈向量类)
  • 云电竞服务器 工作原理
  • 【数据结构】线性表--队列
  • [Vue3]语法变动
  • Ubuntu服务器开启SNMP服务 监控系统配置指南 -优雅草星云智控简易化操作
  • linux本地部署ollama+deepseek过程
  • 从零开始实现大语言模型(十五):并行计算与分布式机器学习
  • OpenCV进阶操作:指纹验证、识别
  • 网络安全-等级保护(等保) 2-5 GB/T 25070—2019《信息安全技术 网络安全等级保护安全设计技术要求》-2019-05-10发布【现行】
  • 3D生成新突破:阶跃星辰Step1X-3D开源,可控性大幅提升
  • MySQL数据类型之VARCHAR和CHAR使用详解
  • 数字人 LAM 部署笔记
  • 《Docker 入门与进阶:架构剖析、隔离原理及安装实操》
  • 基于Akamai云计算平台的OTT媒体点播转码解决方案
  • 【MySQL】02.数据库基础
  • 选错方向太致命,华为HCIE数通和云计算到底怎么选?
  • 经典启发算法【早期/启发式/HC爬山/SA模拟退火/TS禁忌搜/IA免疫 思想流程举例全】
  • IntraWeb 16.0.2 + Bootstrap 4 居中布局实战(附源码+效果图)
  • Spring 框架中适配器模式的五大典型应用场景
  • 【Java ee初阶】jvm(3)
  • C 语言多维数组:定义、初始化与访问的深度解析