C语言数组计数器的用法,下面的程序是对的么

tao_jie 2012-09-06 02:53:31
全校学生的的年龄16-30岁,统计各年龄的人数,用数组计数器
#include <stdio.h>
main()
{ int a[15],year,temp;
for(i=0;i<15;i++)
a[i]=0;
scanf(“%d”,&year);
while(“year<=30&&year>=16”)
{ temp=year%16;
a[temp]++;
}
for(i=0;i<15;i++)
printf(“%d”,a[i]);
}
...全文
632 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2012-09-07
  • 打赏
  • 举报
回复
全角双引号?!
rocktyt 2012-09-07
  • 打赏
  • 举报
回复
i没有定义,while里的条件为什么要用双引号,while里应该再加一条读取的语句,输出时再加个空格否则一串数字会连在一起,year%16的意义也不明确,用-不就行了么?
按照lz的风格改的
#include <stdio.h>
int main()
{
int a[15],year,temp,i;
for (i=0; i<15; i++)
a[i]=0;
scanf("%d",&year);
while (year<=30 && year>=16)
{
temp=year%16;
a[temp]++;
scanf("%d",&year);
}
for (i=0; i<15; i++)
printf("%d ",a[i]);
}
yulitingfeng 2012-09-07
  • 打赏
  • 举报
回复
while改为if。。。不然会死循环。。
#include <stdio.h>
int main()
{
int a[15],year[20],temp;
int i;
for(i=0;i<15;i++)

a[i]=0;
for(i=0;i<20;i++)
{
printf("i=%d\n",i);
scanf("%d",&year[i]);

if(year[i]<=30&&year[i]>=16)
{
temp=year[i]%16;
a[temp]++;
}
}
for(i=0;i<15;i++)
{
printf("%d",a[i]);
}

}

输入20个year后,在输出16—30的个数。
Gloveing 2012-09-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
错的,while会导致死循环。
[/Quote]
++
a[temp]++;
还会导致溢出
图灵狗 2012-09-06
  • 打赏
  • 举报
回复
错的,while会导致死循环。
第1章概述 1.1单片机的结构与应用 1.1.1单片机的定义、分类与内部组成 1.1.2单片机应用系统的结构及其工作过程 1.1.3单片机的应用 1.2单片机基础知识 1.2.1数制与数制间的转换 1.2.2单片机中数的表示方法及常用数制的对应关系 1.2.3逻辑数据的表示 1.2.4单片机中常用的基本术语 1.3单片机入门的有效方法与途径 1.4学习单片机的基本条件 1.4.1软件条件 1.4.2硬件条件 习题与实验 第2章单片机开发软件及开发过程 2.1仿真软件Proteus的使用 2.1.1Proteus的主要功能特点 2.1.2实例1:功能感受——Pmteus仿真单片机播放《渴望》主题曲 2.1.3Proteus软件的界面与操作介绍 2.1.4实例2:Proteus仿真设计快速入门 2.2KeilC51的使用 2.2.1单片机最小系统 2.2.2实例3:用Kei1C51编写点亮一个发光二极管的程序 2.3程序烧录器及烧录软件的使用 习题与实验 第3章逐步认识单片机基本结构 3.1实例4:用单片机控制一个灯闪烁 3.1.1实现方法 3.1.2程序设计 3.1.3用Proteus软件仿真 3.1.4延时程序分析 3.2实例5:将P1口状态送入P0口、P2口和P3口 3.2.1实现方法 3.2.2程序设计 3.2.3用Proteus软件仿真 3.2.4用实验板试验 3.2.5I/O口功能介绍 3.2.6I/O口的结构分析 3.3实例6:使用P3口流水点亮8位1ED 3.3.1实现方法 3.3.2程序设计 3.3.3用Proteus软件仿真 3.3.4用实验板试验 3.4实例7:通过对P3口地址的操作流水点亮8位1ED 3.4.1实现方法 3.4.2程序设计 3.4.3用Proteus软件仿真 3.4.4用实验板试验 3.5MCS-51单片机存储器的基本结构 3.5.1程序存储器 3.5.2数据存储器 3.6单片机的复位电路 习题与实验 第4章单片机C语言开发基础 4.1C语言程序的结构特点 4.2标志符与关键字 4.3C语言的数据类型与运算符 4.3.1数据类型 4.3.2运算符 4.3.3实例8:用不同数据类型的数据控制1ED的闪烁 4.3.4实例9:用P0口、P1口分别显示加法和减法运算结果 4.3.5实例10:用P0口、P1口显示乘法运算结果 4.3.6实例11:用P1口、P0口显示除法运算结果 4.3.7实例12:用自增运算控制P0口8位1ED的闪烁花样 4.3.8实例13:用P0口显示逻辑“与”运算结果 4.3.9实例14:用P0口显示条件运算结果 4.3.10实例15:用P0口显示按位“异或”运算结果 4.3.11实例16:用P0口显示左移运算结果 4.3.12实例17:“万能逻辑电路”实验 4.3.13实例18:用右移运算流水点亮P1口8位1ED 4.4C语言的语句 4.4.1概述 4.4.2控制语句 4.4.3实例19:用if语句控制P0口8位LED的点亮状态 4.4.4实例20:用swtich语句控制PO口8位LED的点亮状态 4.4.5实例21:用for语句设计鸣笛报警程序 4.4.6实例22:用while语句控制PO口8位LED闪烁花样 4.4.7实例23:用dOwhile语句控制PO口8位LED流水点亮 4.5C语言数组 4.5.1数组的定义和引用 4.5.2实例24:用字符型数组控制PO口8位LED流水点亮 4.5.3实例25:用PO口显示字符串常量 4.6C语言的指针 4.6.1指针的定义与引用 4.6.2实例26:用PO口显示指针运算结果 4.6.3实例27:用指针数组控制PO口8位LED流水点亮 4.6.4实例28:用数组的指针控制PO口8位LED流水点亮 4.7C语言的函数 4.7.1函数的定义与调用 4.7.2实例29:用PO口、P1口显示整型函数返回值 4.7.3实例30:用有参函数控制PO口8位LED流水速度 4.7.4实例3l:用数组作函数参数控制PO口8位LED流水点亮 4.7.5实例32:用指针作函数参数控制PO口8位LED流水点亮 4.7.6实例33:用函数型指针控制PO口8位LED流水点亮 4.7.7实例34:用指针数组作为函数的参数显示多个字符串 4.7.8实例35:字符软件ctype.h中的isalpha()函数应用举例 4.7.9实例36:内部函数库文件intrins.h中的_cml_()函数应用举例 4.7.10实例37:标准函数库文件stdlib.h中的rand()函数应用举例 4.7.1l实例38:字符串函数库文件string.h中的strcmp()函数应用举例 4.8C语言的编译预处理 4.8.1常用预处理命令介绍 4.8.2实例39:宏定义应用举例 4.8.3实例40:文件包含应用举例 4.8.4实例41:条件编译应用举例 习题与实验 第5章单片机的定时器/计数器 5.1定时器,计数器的基本概念 5.2定时器/计数器的结构及工作原理 5.2.1定时器/计数器的结构 5.2.2定时器,计数器的工作原理 5.3定时器,计数器的控制 5.3.1定时器/计数器的方式控制寄存器(TMOD) 5.3.2定时器/计数器控制寄存器(TCON) 5.3.3定时器/计数器的4种工作方式 5.3.4定时器/计数器中定时/计数初值的计算 5.4定时器/计数器应用举例 5.4.1实例42:用定时器T0查询方式控制P2口8位LED闪烁 5.4.2实例43:用定时器T1查询方式控制单片机发出1kHz音频 5.4.3实例44:用计数器TO查询的方式计数,结果送P1口显示 习题与实验 第6章单片机的中断系统 6.1中断系统的基本概念 6.2中断系统的结构及控制 6.2.1中断系统的结构 6.2.2中断系统的控制 6.3中断系统应用举例 6.3.1实例45:用定时器TO的方式1控制LED闪烁 6.3.2实例46:用定时器TO的方式1实现长时间定时 6.3.3实例47:用定时器T1的方式1控制两个LED以不同周期闪烁 6.3.4实例48.用计数器T1的中断方式控制发出1kHz音频 6.3.5实例49:用定时器TO的方式O控制播放《好人一生平安》 6.3.6实例50.用计数器TO的方式2对外部脉冲计数 6.3.7实例51:用定时器TO的门控制位测量外部正脉冲宽度 6.3.8实例52:用外中断INT0测量负跳变信号累计数 6.3.9实例53-用外中断控制INT0控制P1口LED亮灭状态 6.3.10实例54:用外中断INT0中断测量外部负脉冲宽度 习题与实验 第7章串行通信技术 7.1串行通信的基本概念 7.2串行通信口的结构 7.3串行通信口的控制 7.3.1串行控制寄存器SCON 7.3.2电源控制寄存器PCON 7.3.3四种工作方式与波特率的设置 7.4串行通信口应用举例 7.4.1实例55.将方式0用于扩展并行输出控制流水灯 7.4.2实例56.基于方式1的单工通信 7.4.3实例57:基于方式3的单工通信 7.4.4实例58:单片机向计算机发送数据 7.4.5实例59:单片机接收计算机送出的数据 习题与实验 第8章接口技术 第9章新型串行接口芯片应用介绍 第10章常用功能器件应用举例 第11章高级综合应用技术
单片机的C语言程序设计与应用课程教学大纲 课程编号: 一、说明 (一)课程性质 本课程应用电子技术专业的必修课。本课程面向的学生主要是高年级本科生。先修课 程:数字电子技术、单片机的汇编语言、汇编语言、C语言程序设计。 (二)教学目的 本课程教学所要达到的目的是:从应用为目的出发,通过对C语言基本概念、基本语 句、单片机应用系统的初步设计的学习,使学生能利用C语言编写51系列单片机应用程序 ,熟练使用Keil C编程软件,具有用C51语言进行程序设计的基本技能,培养学生分析问题和解决问题的 能力。 (三)教学主要内容 本课程的主要内容: 1.语言的数据类型、运算符、表达式。 2.语言的控制结构语句 3.函数与存储模式的特点与应用 4.数组和指针的特点与应用 5.位运算和预处理的特点与应用 6.C51语言在单片机的定时器/计数器,中断系统的应用 7.C51语言串行通信的应用 8.单片机的键盘和显示 重点内容:单片机C程序设计的方法,熟练使用KEIL51集成开发环境,对单片机的软硬件 设计有一定的了解,能简单开发单片机以及嵌入式应用系统。 难点内容:51单片机的内部结构、工作原理及其功能。 (四)教学时数 总学时64,理论学时,32、实验32,学分3。 (五)教学方式 课堂讲授与上机练习相结合。 (六)适用对象 电子信息工程、自动化、测控技术与仪器专业高年级学生。 二、教学内容及安排 1. 单片机的C语言概述 教学要点: 理解嵌入式系统的定义、特点及架构;掌握嵌入式系统与单片机、PC的区别;了解嵌 入式系统的应用领域;弄清嵌入式系统的发展趋势。 教学时数: 2学时 教学内容: 1.1 C语言与MCS-51单片机 (1学时) 掌握嵌入式系统的定义、特点、组成及分类。 1.2 Keil C51开发工具 了解嵌入式系统的应用领域。 1.3 C51的程序结构与编程实例(1学时) 考核要求: 了解C51语言与汇编语言的优势对比,C51语言与标准C语言的区别。了解KeilC51开发 工具。 2. C51程序设计基础 教学要点: 本章主要介绍C51的数据类型和存储类型、基本运算与流程控制语句、构造数据类型、函 数以及程序设计中的其他一些问题等内容 教学时数: 12学时 教学内容: 2.1 C51数据类型及存储类型(2学时) 介绍C51语言的数据类型,常量与变量、数据存储类型。 2 . 2 C51对单片机主要资源的控制(4学时) 1) C51对单片机应用系统主要资源的控制主要包括特殊功能寄存器的定义、片内RAM的使 用、片外RAM及I/O口的使用、位变量的定义。 2) 片内RAM的使用、片外RAM及I/O的使用又称为绝对地址的访问。 2.3 C51 的基本运算与流程控制语句(2学时) 介绍C51的 1) 基本运算 2) 选择(分支)控制语句 3) 循环结构流程控制语句 4) break语句、continue语句和goto语句 2.4 C51的构造数据类型 (2学时) 介绍C51 的构造数据类型主要有数组、指针和结构等。重点讨论数组和指针。 2.5 C51 函数(2学时) 介绍C51的不同函数定义方式。 考核要求: 掌握:C51的数据类型、运算符及表达式;C51语言程序的基本结构及其流程图;函数 及选择语句和循环语句的用法。 3. 单片机内部资源的C51编程 教学要点: 掌握:计算机并行输入/输出、定时/计数器接口、串行接口和中断系统的概念,单 片机中断系统的结构、中断源、中断特殊功能寄存器、中断响应过程;串行口功能与结 构、工作方式及编程应用;定时/计数器系统的电路结构、特殊功能寄存器及功能和使用 方法。 理解:单片机定时和计数、串行和中断的应用。。 教学时数: 8学时 教学内容: 3.1 单片机的并行口(2学时) 介绍51单片机的4个并行I/O口的特点,了解每个端口既可以按字节单独使用,也可以 按位操作,各个端口可作为一般的I/O口使用,大多数端口又可以作为第二功能使用。 3.2 单片机的中断系统(2学时) 介绍51单片机的中断系统的特点,它提供5个中断源(52子系列是6个),具有两个中 断优先级,可以实现两级中断嵌套。 3.3 单片机的定时器/计数器(2学时) 介绍MCS- 51单片机内部的两个16位的可编程的定时器/计数器,即定时器T0和定时器T1(8052提供 3个,第三个称为定时器T2)。它们既可用作定时器方式,又可用作计数器方式 3.4 单片机的串行口(2学时) 介绍MCS- 51单片机内部的串行接口的特点。这个口既可以用于网络通信,也可以实现串行异步通 信,还可以作为同步移位寄存器使用。 考核要求: 了解单片机内部的并行口、中断系统、定时器/计数器、串行口的构成及特点,熟练掌 握对这些资源的C语言编程,能够利用这些资源实现某些功能。
从零开始学单片机C语言 内容简介: 本书定位于让初学者从零起步,轻松学会单片机高级编程C语言以及实战技术。书中首先简要介绍了8051单片机的主要构成,然后重点介绍了单片机Cx51高级编程语言开发与仿真环境的使用方法,透彻地分析了Cx51的语法结构,并给出了大量实例。书中大多数实例和全部实验都经过了实验板的验证。 本书可供具有一定单片机基础的初学者,以及广大从事单片机应用系统开发研制的工技术人员阅读,也可以作为有关院校相关专业的教学参考用书。 目录: 第一章 单片基础知识  第一节 51系列单片机概述  第二节 80C51单片机的内部结构和外部引脚  第三节 80C51单片机的内部结构和外部引脚  第四节 51系列单片机的并行输入/输出接口  第五节 80C51单片机的时钟电路和复位电路 第二章 单片机C语言入门  第一节 认识C语言  第二节 简单C语言  第三节 单片机C语言开发步骤 第三章 单片机实验硬件环境的建立  第一节 单片机实验板  第二节 单片机仿真器  第三节 单片机编程器 第四章 Keli Cx51软件的使用  第一节 Keil Cx51简介  第二节  Keil Cx51软件的安装   第三节 uVision2集成开发环境  第四节 常用窗口介绍 第五章 Cx51数据与运算  第一节 标识符和关键字  第二节 数据类型  第三节 常量  第四节 变量   第五节 运算符和表达式 第六章  Cx51的基本语句  第一节 表达式语句和复合语句   第二节 条件选择语句   第三节 循环语句 第七章 Cx51函数  第一节 函数的分类和定义   第二节 函数的参数和返回值  第三节 函数的调用  第四节 函数变量的存储方式和种类 第八章 Cx51构造数据类型  第一节 数组  第二节 指针  第三节 结构  第四节 共用体  第五节 枚举 第九章 单片机中断、定时器串行口的C语言编程  第一节 单片机中断系统C语言编程   第二节 定时/计数器及实验  第三节 串行数据通信技术及实验  第十章 单片机实用接口C语言编程技术  第一节 LED显示器接口   第二节 链盘接口   第三节 LCD显示器接口   第四节 I2C总线接口  第五节 A/D和D/A转换接口   第六节 单片机应用技术综合实例 附录一 运算符的优先级和结合性 附录二 Keil Cx51编译器常见警告与错误信息的解决方法 参考文献
第1章 单片机基础 1.1 单片机技术发展状况 1.2 51系列单片机体系结构 1.2.1 内部结构 1.2.2 存储器组织结构 l.2.3 内部功能模块 l.2.4 外部引脚 1.2.5 系统资源扩展 1.3 单片机的编程方法 第2章 C语言编程基础 2.1 基本概念 2.1.1 概述 2.1.2 变量与算术表达式 2.1.3 for语句 2.1.4 符号常量 2.2 数据类型、运算符和表达式 2.2.1 C语言的数据类型 2.2.2 常量与变量 2.2.3 整型数据 2.2.4 实型数据 2.2.5 字符型数据 2.2.6 运算符 2.2.7 表达式 2.3 程序控制语句 2.3.1 程序的3种基本结构 2.3.2 条件控制语句 2.3.3 程序应用举例 2.4 循环控制语句 2.4.1 while语句 2.4.2 dowhile语句 2.4.3 for语句 2.4.4 break与continue语句 2.4.5 程序应用举例 2.5 小结 第3章 C语言高级编程 3.1 函数与程序结构 3.1.1 函数的基本知识 3.1.2 返回非整数值的函数 3.1.3 外部变量 3.1.4 作用域规则 3.1.5 头文件 3.1.6 静态变量 3.1.7 寄存器变量 3.1.8 分程序结构 3.1.9 初始化 3.1.10 递归 3.2 数组 3.2.1 一维数组 3.2.2 维数组 3.2.3 多维数组 3.2.4 数组的初始化 3.3 指针 3.3.1 指针与指针变量. 3.3.2 指针变量的定义与引用 3.3.3 指针运算符与指针表达式 3.3.4 指针与数组 3.3.5 指针的地址分配 3.3.6 指针数组 3.3.7 指向指针的指针 3.4 占构体与共用体 3.4.1 结构体类型变量的定义和引用 3.4.2 结构体数组的定义和引用 3.4.3 结构体指针的定义和引用 3.4.4 共用体 3.5 小结 第4章C51程序设计 4.1 C51对标准C语言的扩展 4.1.1 存储区域 4.1.2 数据变量分类 4.1.3 存储器模式 4.1.4 绝对地址的访问 4.1.5 指针 4.1.6 函数 4.2 C5 1函数库 4.2.1 字符函数CTYPE.H 4.2.2 一般I/O函数STDIO.H 4.2.3 字符串函数STRING.H 4.2.4 标准函数STDLIB.H 4.2.5 数学函数MATH.H 4.2.6 绝对地址访问ABSACC.H 4.2.7 内部函数INTRINS.H 4.2.8 变量参数表STDARG.H 4.2.9 全程跳转SETJMPH 4.2.10 访问SFR和SFR bit地址REGxxx.H 4.3 C51程序编写 4.3.1 C程序基本结构 4.3.2 编写高效的C51程序及优化程序 第5章 Windows集成开发环境μVision2 5.1 μVision2编辑界面及其功能介绍 5.1.1 μVision2界面综述 5.1.2 主菜单栏 5.1.3 μVision2功能按钮 5.1.4 μVision2窗口环境 5.2 应用μVision2开发流程介绍 5.2.1 建立新项目 5.2.2 常用环境配置 5.2.3 代码优化 5.2.4 目标代码调试 5.3 CPU仿真 5.3.1 μVision2调试器 5.3.2 调试命令 5.3.3 存储器空间 5.3.4 表述(Expressions) 5.3.5 技巧 5.4 深入了解μVision2 5.4.1 μVision2的项目管理 5.4.2 使用技巧 5.4.3 μVision2调试函数 第6章 C5l编译器 6.1 预处理 6.1.1 宏定义 6.1.2 文件包含 6.1.3 条件编译 6.1.4 其他预处理命令 6.2 C51编译器控制指令详解 6.2.1 源控制指令 6.2.2 列表控制指令 6.2.3 目标控制指令 6.3 C5l的高级配置文件 6.3.1 目标程序启动配置文件——STARTUP.A51. 6.3.2 CPU初始化文件——START751.A51 6.3.3 静态变量初始化文件——INT.A51 6.3.4 专用变量初始化文件——INIT751.A51 第7章 C51的典型资源编程 7.1 中断系统设计 7.2 定时/计数器的使用 7.3 I/O口的使用 7.4 扩展存储器 7.4.1 外部ROM 7.4.2 外部RAM 7.4.3 外部串行E2PROM 7.5

69,380

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧