c语言编程序

2024-05-14

1. c语言编程序

将本金分成120期,即是“每个月还款的本金”
第1个月,要给当期要还的本金和全部本金的利息(即“每个月的利息”之第1个月的利息)。
第2个月,要给当期要还的本金和(全部本金-一期本金)的利息(即“每个月的利息”之第2个月的利息)。
第3个月,要给当期要还的本金和(全部本金-二期本金)的利息(即“每个月的利息”之第3个月的利息)。
………………………………………………………………
以此类推,直到还完
n=120,  rateThis=3000.00,  payThis=8000.00
n=119,  rateThis=2975.00,  payThis=7975.00
n=118,  rateThis=2950.00,  payThis=7950.00
n=117,  rateThis=2925.00,  payThis=7925.00
n=116,  rateThis=2900.00,  payThis=7900.00
n=115,  rateThis=2875.00,  payThis=7875.00
n=114,  rateThis=2850.00,  payThis=7850.00
n=113,  rateThis=2825.00,  payThis=7825.00
n=112,  rateThis=2800.00,  payThis=7800.00
n=111,  rateThis=2775.00,  payThis=7775.00
n=110,  rateThis=2750.00,  payThis=7750.00
n=109,  rateThis=2725.00,  payThis=7725.00
n=108,  rateThis=2700.00,  payThis=7700.00
n=107,  rateThis=2675.00,  payThis=7675.00
n=106,  rateThis=2650.00,  payThis=7650.00
n=105,  rateThis=2625.00,  payThis=7625.00
n=104,  rateThis=2600.00,  payThis=7600.00
n=103,  rateThis=2575.00,  payThis=7575.00
n=102,  rateThis=2550.00,  payThis=7550.00
n=101,  rateThis=2525.00,  payThis=7525.00
n=100,  rateThis=2500.00,  payThis=7500.00
n=99,  rateThis=2475.00,  payThis=7475.00
n=98,  rateThis=2450.00,  payThis=7450.00
n=97,  rateThis=2425.00,  payThis=7425.00
n=96,  rateThis=2400.00,  payThis=7400.00
n=95,  rateThis=2375.00,  payThis=7375.00
n=94,  rateThis=2350.00,  payThis=7350.00
n=93,  rateThis=2325.00,  payThis=7325.00
n=92,  rateThis=2300.00,  payThis=7300.00
n=91,  rateThis=2275.00,  payThis=7275.00
n=90,  rateThis=2250.00,  payThis=7250.00
n=89,  rateThis=2225.00,  payThis=7225.00
n=88,  rateThis=2200.00,  payThis=7200.00
n=87,  rateThis=2175.00,  payThis=7175.00
n=86,  rateThis=2150.00,  payThis=7150.00
n=85,  rateThis=2125.00,  payThis=7125.00
n=84,  rateThis=2100.00,  payThis=7100.00
n=83,  rateThis=2075.00,  payThis=7075.00
n=82,  rateThis=2050.00,  payThis=7050.00
n=81,  rateThis=2025.00,  payThis=7025.00
n=80,  rateThis=2000.00,  payThis=7000.00
n=79,  rateThis=1975.00,  payThis=6975.00
n=78,  rateThis=1950.00,  payThis=6950.00
n=77,  rateThis=1925.00,  payThis=6925.00
n=76,  rateThis=1900.00,  payThis=6900.00
n=75,  rateThis=1875.00,  payThis=6875.00
n=74,  rateThis=1850.00,  payThis=6850.00
n=73,  rateThis=1825.00,  payThis=6825.00
n=72,  rateThis=1800.00,  payThis=6800.00
n=71,  rateThis=1775.00,  payThis=6775.00
n=70,  rateThis=1750.00,  payThis=6750.00
n=69,  rateThis=1725.00,  payThis=6725.00
n=68,  rateThis=1700.00,  payThis=6700.00
n=67,  rateThis=1675.00,  payThis=6675.00
n=66,  rateThis=1650.00,  payThis=6650.00
n=65,  rateThis=1625.00,  payThis=6625.00
n=64,  rateThis=1600.00,  payThis=6600.00
n=63,  rateThis=1575.00,  payThis=6575.00
n=62,  rateThis=1550.00,  payThis=6550.00
n=61,  rateThis=1525.00,  payThis=6525.00
n=60,  rateThis=1500.00,  payThis=6500.00
n=59,  rateThis=1475.00,  payThis=6475.00
n=58,  rateThis=1450.00,  payThis=6450.00
n=57,  rateThis=1425.00,  payThis=6425.00
n=56,  rateThis=1400.00,  payThis=6400.00
n=55,  rateThis=1375.00,  payThis=6375.00
n=54,  rateThis=1350.00,  payThis=6350.00
n=53,  rateThis=1325.00,  payThis=6325.00
n=52,  rateThis=1300.00,  payThis=6300.00
n=51,  rateThis=1275.00,  payThis=6275.00
n=50,  rateThis=1250.00,  payThis=6250.00
n=49,  rateThis=1225.00,  payThis=6225.00
n=48,  rateThis=1200.00,  payThis=6200.00
n=47,  rateThis=1175.00,  payThis=6175.00
n=46,  rateThis=1150.00,  payThis=6150.00
n=45,  rateThis=1125.00,  payThis=6125.00
n=44,  rateThis=1100.00,  payThis=6100.00
n=43,  rateThis=1075.00,  payThis=6075.00
n=42,  rateThis=1050.00,  payThis=6050.00
n=41,  rateThis=1025.00,  payThis=6025.00
n=40,  rateThis=1000.00,  payThis=6000.00
n=39,  rateThis=975.00,  payThis=5975.00
n=38,  rateThis=950.00,  payThis=5950.00
n=37,  rateThis=925.00,  payThis=5925.00
n=36,  rateThis=900.00,  payThis=5900.00
n=35,  rateThis=875.00,  payThis=5875.00
n=34,  rateThis=850.00,  payThis=5850.00
n=33,  rateThis=825.00,  payThis=5825.00
n=32,  rateThis=800.00,  payThis=5800.00
n=31,  rateThis=775.00,  payThis=5775.00
n=30,  rateThis=750.00,  payThis=5750.00
n=29,  rateThis=725.00,  payThis=5725.00
n=28,  rateThis=700.00,  payThis=5700.00
n=27,  rateThis=675.00,  payThis=5675.00
n=26,  rateThis=650.00,  payThis=5650.00
n=25,  rateThis=625.00,  payThis=5625.00
n=24,  rateThis=600.00,  payThis=5600.00
n=23,  rateThis=575.00,  payThis=5575.00
n=22,  rateThis=550.00,  payThis=5550.00
n=21,  rateThis=525.00,  payThis=5525.00
n=20,  rateThis=500.00,  payThis=5500.00
n=19,  rateThis=475.00,  payThis=5475.00
n=18,  rateThis=450.00,  payThis=5450.00
n=17,  rateThis=425.00,  payThis=5425.00
n=16,  rateThis=400.00,  payThis=5400.00
n=15,  rateThis=375.00,  payThis=5375.00
n=14,  rateThis=350.00,  payThis=5350.00
n=13,  rateThis=325.00,  payThis=5325.00
n=12,  rateThis=300.00,  payThis=5300.00
n=11,  rateThis=275.00,  payThis=5275.00
n=10,  rateThis=250.00,  payThis=5250.00
n=9,  rateThis=225.00,  payThis=5225.00
n=8,  rateThis=200.00,  payThis=5200.00
n=7,  rateThis=175.00,  payThis=5175.00
n=6,  rateThis=150.00,  payThis=5150.00
n=5,  rateThis=125.00,  payThis=5125.00
n=4,  rateThis=100.00,  payThis=5100.00
n=3,  rateThis=75.00,  payThis=5075.00
n=2,  rateThis=50.00,  payThis=5050.00
n=1,  rateThis=25.00,  payThis=5025.00
n=0,  rateThis=0.00,  payThis=5000.00
every=5000.00, amountOfRate=181500.00

c语言编程序

2. C语言编程

(一)“项目驱动”式教学
目前最著名、最有影响、应用最广泛的windows、linux和UNIX三个操作系统都是用C语言编写的。0S是计算机系统(由软硬件两个子系统构成)的核心和灵魂,它是软件中最庞大最复杂的系统软件。既然如此庞大复杂的0S都可以用c语言编写,从狭义而言,还有什么系统软件和应用软件不能用c语言编写呢?由此可以肯定的说,c语言是一门十分优秀而又重要的语言。
c语言程序设计是过程性程序设计语言,它的发展贯穿了计算机发展的历程,它蕴含了程序设计的基本思想,囊括了程序设计的基本概念,所以它是理工科高等院校的一门基础课程。
从市面上有关c语言的书籍和高等院校采用的教材来看,它们有一个共性,那就是:脱离了实际应用(全是小打小闹的小例子),纯粹的过程性程序设计,没有软件工程思想的体现,没有一定程序设计风格,仅仅是为了让大家明白什么是c语言而已。
高等院校开设c语言程序设计的目的是让学生对程序设计有个入门,有个直观的理解,同时为其他后续课程作铺垫。但是如果教学仅仅以此为目的,那么教学本身就效果而言是个大大的失败。
大家知道,在商业上讲究唯利是图,“利”是商业追求的目标,离开了“利”经商,则商无动力,其结果是必败无疑。在c语言程序设计教学当中,教师应该把“唯用是图”作为教学的首要目标。如果抛开了实际应用进行程序设计教学,就是纸上谈兵,就是“说明书”式的教学。印度的程序设计课程采用“事件驱动式”教学,我认为在中国的c语言程序设计教学中应该采用“项目驱动式”教学。“项目驱动式”教学就是以项目为目的,以c语言理论教学为过程,最终能用c语言设计项目,实现项目的要求。“项目驱动式”教学的关键在于培养学生“如何做什么”和“可以干什么”。一个项目就是一个工程,在“项目驱动式”教学中,首先应该让学生简单了解什么是软件工程思想,其次在c语言理论教学过程中,让学生懂得面向对象的程序设计的风格,最后引导他们来设计项目。
(二)“项目驱动”式教学应注意的问题
1.c语言程序设计教学要帮助学生树立面向工程的观点
在计算机行业中,软件是通过人们的智力活动、把知识与技术转化成信息的一种产品。软件的设计已经用工程的观念来进行管理。软件设计工作被当作一项系统工程来对待。软件的的生存周期一般可分为以下阶段:问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。我们不难看出软件工程的复杂程度是很大的。理工科高等院校把c语言作为一门基础课程,也是为了给社会培养信息技术人才。众所周知,养成一个好的习惯是非常重要的,所以c语言程序设计作为大多数工科院校学生接触的第一门程序设计语言(有的院校讲pascal),就应该让学生树立正确的观点。那么当前的程序设计教学也必须以切合将来软件工程开发的实际需要为第一目标,使学生在学习程序设计的初级阶段就树立正确的软件工程观点。这样做不仅可以为学生将来从事计算机应用设计打下良好的基础,而且有利于培养学生分析问题的完备性,以及统筹全局,协调关系的基本素质。
2.理论教学应从单一的“结构化程序设计”向“结构化与面向对象并举”转变
“结构化程序设计”方法是程序设计的基础,必须让学生掌握得坚实可靠。结构化程序设计的过程是培养学生思维能力的过程,在教学中经常发现有些学生的思维混乱。这些都是缺乏思维训练的结果。结构化程序设计的训练不仅可以让学生养成良好的程序设计习惯,而且可以有效地培养学生思维的条理性和逻辑性。所以在授课过程中要注意讲解结构化程序设计的思想时应突出两点:(1)程序的质量首先取决于它的结构。(2)程序设计的基本方法是自顶向下地逐步求精和模块化。
在c程序教学过程中,越到后面的章节,学生越会产生设计程序逐渐变难的感觉,这是不符合逻辑的一种怪现象。按照常理,C语言学的越多,说明你的程序设计知识越多,设计起程序来应该更加得心应手,那么出现这种现象的原因何在呢?当然该问题的出现的原因是多方面的,但是其中最重要的一点就是长期以来程序设计的观念不是以如何处理好对象为出发点,而是以如何使用好语言为基本点。受这种思想的影响,我们的程序设计教学大多数不是以如何解决好问题为重点,而是以讲解语法规则和语句格式为重点,是“说明书”式的教学。这样做造成的结果就是见到一个程序后学生首先想到是该用哪条语句,而不是思考怎样合理的解析。要切实解决这个问题,首先应该改变程序设计的观念。“面向对象程序设计”思想是目前最为流行、极为实用的一种程序设计方法,但是让学生直接接触“面向对象程序设计”,肯定不能对程序设计打下牢固的基础。“结构化与面向对象并举”是现代计算机程序设计的发展趋势,应该认真探索研究,让学生有一个较为轻松的学习过程。程序设计的实质就是编写处理对象的过程,所以将c与c++有机的融为一体的教材应该是首选教材,在教学过程中,我们应该从社会发展的角度进行探索研究,将目前最为流行又极为实用“面向对象程序设计”思想融合到c语言教学中。
3.c语言教学应培养学生良好的程序设计风格
具有良好的设计风格应该是程序员所具备的基本素质,在实际的项目中程序员往往都有自己的一些编程风格。目前95%以上的程序设计书籍不注重程序设计风格问题,这导致了很多学生没有良好的程序设计风格,在他们刚刚毕业踏入社会时,如果周围的同事没有良好的编程风格,那么很难通过环境来使自己提高这方面的素质,即使有提高也不容易比较全面的提高。因此在学生接触的第一门程序设计语言教学中,就应该培养学生良好的程序设计风格,使他们一进工作环境就具备这个素质。
Pascal设计者N.Writh教授十分重视程序设计风格的养成,他坚信“教给学生们以表达他们思维的语言会深深地影响他们思维和创造发明的习惯,而正是这些语言本身的混乱直接影响着学生们的程序设计的风格”,他这里所指的“这些运用”是当时那些主要用于程序设计教学的计算机语言。对学生来讲,一开始就强调程序设计风格很有必要,良好的程序设计风格不仅有助于提高程序的可靠性、可理解性、可测试性、可维护性和可重用性,而且也能够促进技术的交流,改善软件的质量。所以培养良好的程序设计风格对于初学者来说非常重要。
程序设计风格,实际上是指的是编码风格。在教学过程中应从源程序文档化,数据说明的原则,输入/输出方法这三个方面培养学生的编码风格,进而从编码原则探讨提高程序的可读性、改善程序质量的方法。
(1)源程序文档化。编码的目的是产生程序,但是为了提高程序的可维护性。源代码是需要实现文档化的。源程序文档化包括选择标识符(变量和标号)的名字、安排注释以及标准的书写格式等。
①选择标识符的命名规则。标识符包括模块名、变量名、常量名、标号名、子程序名等。这些名字应能反映它所代表的实际东西,应有一定实际意义,使其能顾名思义。另外在模块名、变量名、常量名、标号名、子程序名中使用下划线是一种风格。使用这一技术的一种广为人知的命名规则就是匈牙利命名法(变量类型由一个或两个字符表示,并且这些字符将作为变量名的前缀)。当然使用匈牙利命名法与否都没有错误,重要的是要保持一致性——在整个程序中使用相同的命名规则。这就是说,如果你在一个小组环境中编程,你和其他小组成员应该制定一种命名规则。并自始至终使用这种规则。如果有人使用了别的命名规则,那么集成的程序读起来将是很费劲的。此外,你还要与程序中用到的第三方库(如果有的话)所使用的风格保持一致。如果可能的话,你应该尽量使用与第三方库相同的命名规则,这将加强你的程序的可读性和一致性。
②注释。程序中的注释是程序设计者与程序阅读者之间通信的重要手段。注释能够帮助读者理解程序,并为后续测试维护提供明确的指导信息。因此,注释是十分重要的,大多数程序设计语言提供了使用自然语言来写注释的环境,为程序阅读者带来很大的方便。注释分为功能性注释和序言性注释。
a.功能性注释。功能性注释在源程序中,用以描述其后的语句或程序段是在做什么工作,也就是解释下面要“做什么”,而不是解释下面怎么做。对于书写功能性注释,要注意以下几点:第一描述一段程序,而不是每一个语句。第二利用缩进和空行,使程序与注释容易区别。第三注释要准确无误。
b.序言性注释。序言性注释通常位于每个程序模块的开头部分,它给出程序的整体说明,对于理解程序具有引导作用。有些软件开发部门对序言性注释做了明确而严格的规定,要求程序编制者逐项列出。有关内容包括:程序标题;有关该模块功能和目的的说明;主要算法;接口说明:包括调用形式,参数描述,子程序清单;有关数据描述;模块位置(在哪一个源文件中,或隶属于哪一个软件包);开发简历:模块设计者、复审考、复审日期。
③用标准的书写格式。源程序清单的书写建议采用以下几点:
a.每行只写一条语句;
b.用分层缩进的写法显示嵌套结构层次,这样可使程序的逻辑结构更加清晰,层次更加分明。
c.书写表达式时适当使用空格或圆括号作隔离符。
d.在注释段周围加上边框;
e.注释段与程序段、以及不同的程序段之间插入字行;
(2)数据说明采用的原则。在编写程序时,要注意数据说明的风格。
数据说明的次序如果规范,将有利于测试,排错和维护。首先说明的先后次序要固定,例如,按常量说明、简单变量类型说明、数组说明用数据块说明、所有的文件说明的顺序说明。当然在类型说明中还可进一步要求,例如按如下顺序排列:整型量说明、实型量说明、字符量说明、逻辑说明。
其次当用一个语句说明多个变量名时,应当对这些变量按字母的顺序排列。
最后对于复杂数据结构,应利用注释说明实现这个数据结构的特点。
(3)输入/输出方法。输入/输出的方式和格式应当尽量避免因设计不当给用户带来的麻烦。这就要求,源程序的输入/输出风格必须满足能否为用户接受这一原则。所以在设计程序时,应考虑以下原则:输入数据时,要使输入的步骤和操作尽可能简单,应允许使用自由格式输入;应允许缺省值;对输入的数据要进行检验,以保证每个数据的有效性。
(三)结束语
在教学过程中,我们让学生设计一个程序模拟体育彩票的销售与对奖的过程,取得了良好的效果。他不仅启发和诱导了学生独立思考、积极思维的主动性,而且充分调动了学生学习的自觉性和积极性,使学生融会贯通地掌握了所学知识,提高了分析问题和解决实际问题的能力。
搞好c程序设计的教学工作涉及的因素很多,如果以项目来驱动教学,首先让学生树立面向工程的思想,其次把教学从单一的“结构化程序设计”向“结构化与面向对象并举”转变,最后特别要培养学生养成良好的编码风格,从而使他们学会能够“干什么”,那么我们认为教学目的就达到了。

3. c语言 编程

你好!!
首先答案是 C不是b
我们看看:
int a[2][3],*p[3];,其中a是二维数组名,其相当于二级指针及**a;.而*p[3]是指
针数组,即p[0],p[1],p[2]都是指针变量
A)p=a;首先数组名就是代表数组的一个元素,和b)p[0]=a错误一样原因是:表示把二级指针赋值给一级指针,不对
 D)p[1]=&a;其中&a是三级指针,赋值更是错误。

而C)p[0]=&a[1][2];表示把数组的第二行,第三个元素的地址赋值给p[0],这是可以的。

最后提醒全国试卷上有好多错误,自己注意,顺便预祝考试顺利。

c语言 编程

4. C语言编程

C语言编程,顾名思义,就是用C语言来进行计算机编程工作。C语言是国际上广泛流行的,很有发展前途的计算机高级语言.它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件.

中文名
C语言编程
原型
ALGOL 60
特点
结构化设计
语言类型
高级语言
定义
  C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。主要有以下特点:

  C语言在很多方面都可以用,不仅仅是在软件开发上,各类科研都是需要用到C语言的。具体应用比如我是学硬件的,单片机以及嵌入式系统都可以用C来开发。

  C 语言发展如此迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C 语言加上一些汇编语言子程序, 就更能显示C 语言的优势了, 象PC- DOS 、WORDSTAR等就是用这种方法编写的。归纳起来C 语言具有下列特点:1. C是中级语言它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。

  2. C是结构式语言结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C 语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。

  3. C语言功能齐全C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另外C 语言也具有强大的图形功能, 支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大, 可以实现决策目的编游戏,编3D游戏,做数据库,做联众世界,做聊天室,做PHOTOSHOP做FLASH,做3DMAX。

  4. C语言适用范围大C语言还有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。

  C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。

  C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。

  常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32C Compiler 3.1,Microsoft C,High C,Turbo C,Dev-C++,C-Free,win-tc等等......

5. c语言的编程

根据题目要求,输入年月用':'分割,注意我用的冒号是英文输入法。月份对应天数用数组就可以(2月默认28天),通过判断闰年决定2月份是否加1。下面代码:

#include
int getMaxDay(int year,int month);//通过年月获取当月最大天数
int isLeapYear(int year);//判断是否是闰年,是返回1,否返回0
int main()
{
int year,month=0,n=13;
while(n--){//输入13次
month=0;
while(month12)//月数不在1~12范围,输入无效
scanf("%4d:%2d",&year,&month);
printf("%4d年%02d月有%d天\n",year,month,getMaxDay(year,month));
}
return 0;
}
int getMaxDay(int year,int month)//通过年月获取当月最大天数
{
int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(isLeapYear(year) && month==2)
return days[month-1]+1;
return days[month-1];
}
int isLeapYear(int year)//判断是否是闰年,是返回1,否返回0
{
if((year%4==0 && year%100!=0)||(year%400==0))
return 1;
return 0;
}

c语言的编程

6. c语言 编程

感觉题目有问题呀,三个向量A(80,90,100),B(90,80,70),C(60,70,60)
按定义,X属于集合(A,B,C),当且仅当X<=X(即对于任意D是集合(A,B,C)中非X的元素,X<=D都不成立),X为集合的的极小元素。
那么,按定义,C<=C,C=A,C<=B 都成立,C不是极小元素。而题目却说C是极小元素。
我这么理解有问题吗?

如果是题目表达有错,根据他给的例子,我猜测题目想表达的意思是求三个分向量都是最小的向量。这样的话求法是:对坐标1排序,找到最小值,再将坐标1最小的向量的坐标2,坐标3进行验证,验证是否是最小的(验证的话,就不需要排序了,每个比较一次就行了)
还有一种理解,找出集合中的向量X,该向量满足:在集合中,不存在某个向量D,D的三个坐标都比X的大(或者是对于所有非X向量,三坐标中至少有一个比X小)。这么理解的话,求法是:
集合E(总数据),集合E4(E中最小元素的集合候选集,初始时和E相同),集合E5(E中最小元素的集合)
在集合E4中选取某个向量X,若E4为空集,则算法结束,E5为最小元素的集合
在E中比较坐标1,将坐标1比X的坐标1大的向量归为集合E1,若集合E1为空集,那么X为极小元素,将X从E4中剔除,将X加入E5,跳转1
在E1中比较坐标2,将坐标2比X的坐标2大的向量归为集合E2,若集合E2为空集,那么X为极小元素,将X从E4中剔除,将X加入E5,跳转1
在E2中比较坐标3,将坐标3比X的坐标3大的向量归为集合E3,若集合E3为空集,那么X为极小元素,将X加入E5,否则X不为极小元素。
将X从E4中剔除,跳转1


又或者我上面的理解都是错的~~~~~

7. C语言编程

/*编程序实现如下功能:输入任意一个年份,
求出从公元1年1月1日到这一年每个月的1日总共有多少天,
并求出这一年每个月的1日是星期几,
再按以下格式输出该年份全年的公历日历。
 要求用循环控制打印。
   打印样例如下:
 9月
----------------------------
日    一     二    三    四   五    六
                                    1
 2     3     4     5     6     7    8
 9     10     11    12     13    14    15
16    17    18    19     20    21    22
23    24    25    26     27    28    29
30
*/
#include
int main()
{
    int year,day,leap;//leap为1表示闰年,0表示平年
    int i =1,thisYear[13]={0},j=1;
    printf("请输入年份:");
    scanf("%d",&year);
    //计算公元01年01月01日到该年份的天数
    day = (year-1) * 365 + year/4-year/100+year/400;
    printf("公元01年01月01日到该年是%d天\r\n",day);
    printf("公元1年1月1日到这一年每个月的1日分别是:\r\n");
    printf("1月\t2月\t3月\t4月\t5月\t6月\t7月\t8月\t9月\t10月\t11月\t12月\r\n");
    if(year%4==0 && year%100!=0 || year%400==0)
		leap=1;
    else
        leap=0;
    thisYear[0]=day;
    thisYear[1]=day+31;
    thisYear[2]=day+leap+28+31;
    thisYear[3]=day+leap+28+31*2;
    thisYear[4]=day+leap+28+31*2+30;
    thisYear[5]=day+leap+28+31*3+30;
    thisYear[6]=day+leap+28+31*3+30*2;
    thisYear[7]=day+leap+28+31*4+30*2;
    thisYear[8]=day+leap+28+31*4+30*3;
    thisYear[9]=day+leap+28+31*5+30*3;
    thisYear[10]=day+leap+28+31*5+30*4;
    thisYear[11]=day+leap+28+31*6+30*4;
    printf("%d天\t%d天\t%d天\t%d天\t%d天\t%d天\t%d天\t%d天\t%d天\t%d天\t%d天\t%d天\r\n",thisYear[0],thisYear[1],thisYear[2],thisYear[3],thisYear[4],
           thisYear[5],thisYear[6],thisYear[7],thisYear[8],thisYear[9],thisYear[10],thisYear[11]);
    //求出这一年每个月的1日是星期几:
    for(i=1;i<=12;i++)
    {
        printf("这一年的%d月的1日是星期%d\r\n",i,thisYear[i-1]%7);
    }
    printf("(注:0表示星期天)\r\n");
    //再按以下格式输出该年份全年的公历日历。
    for(i = 1;i<=12;i++)
    {
        printf("%d月\r\n",i);
        printf("----------------------------------------------\r\n");
        printf("日\t一\t二\t三\t四\t五\t六\r\n");
        switch(thisYear[i-1]%7)
         {
             case 0:
                break;
             case 1:
                 printf("  \t");
                 break;
             case 2:
                 printf("  \t");
                 printf("  \t");
                 break;
             case 3:
                 printf("  \t");printf("  \t");printf("  \t");
                 break;
             case 4:
                 printf("  \t");printf("  \t");printf("  \t");printf("  \t");
                 break;
             case 5:
                 printf("  \t");printf("  \t");printf("  \t");printf("  \t");printf("  \t");
                 break;
             case 6:
                 printf("  \t");printf("  \t");printf("  \t");printf("  \t");printf("  \t");printf("  \t");
                 break;
         }
        for(j=1;j<=thisYear[i]-thisYear[i-1];j++)
         {

             printf("%2d\t",j);
             if((j+(thisYear[i-1]))%7==0)
                printf("\r\n");
         }
        printf("\r\n----------------------------------------------\r\n");
    }
    return 0;
}


C语言编程

8. C语言编程

(一)“项目驱动”式教学
目前最著名、最有影响、应用最广泛的windows、linux和UNIX三个操作系统都是用C语言编写的。0S是计算机系统(由软硬件两个子系统构成)的核心和灵魂,它是软件中最庞大最复杂的系统软件。既然如此庞大复杂的0S都可以用c语言编写,从狭义而言,还有什么系统软件和应用软件不能用c语言编写呢?由此可以肯定的说,c语言是一门十分优秀而又重要的语言。
c语言程序设计是过程性程序设计语言,它的发展贯穿了计算机发展的历程,它蕴含了程序设计的基本思想,囊括了程序设计的基本概念,所以它是理工科高等院校的一门基础课程。
从市面上有关c语言的书籍和高等院校采用的教材来看,它们有一个共性,那就是:脱离了实际应用(全是小打小闹的小例子),纯粹的过程性程序设计,没有软件工程思想的体现,没有一定程序设计风格,仅仅是为了让大家明白什么是c语言而已。
高等院校开设c语言程序设计的目的是让学生对程序设计有个入门,有个直观的理解,同时为其他后续课程作铺垫。但是如果教学仅仅以此为目的,那么教学本身就效果而言是个大大的失败。
大家知道,在商业上讲究唯利是图,“利”是商业追求的目标,离开了“利”经商,则商无动力,其结果是必败无疑。在c语言程序设计教学当中,教师应该把“唯用是图”作为教学的首要目标。如果抛开了实际应用进行程序设计教学,就是纸上谈兵,就是“说明书”式的教学。印度的程序设计课程采用“事件驱动式”教学,我认为在中国的c语言程序设计教学中应该采用“项目驱动式”教学。“项目驱动式”教学就是以项目为目的,以c语言理论教学为过程,最终能用c语言设计项目,实现项目的要求。“项目驱动式”教学的关键在于培养学生“如何做什么”和“可以干什么”。一个项目就是一个工程,在“项目驱动式”教学中,首先应该让学生简单了解什么是软件工程思想,其次在c语言理论教学过程中,让学生懂得面向对象的程序设计的风格,最后引导他们来设计项目。
(二)“项目驱动”式教学应注意的问题
1.c语言程序设计教学要帮助学生树立面向工程的观点
在计算机行业中,软件是通过人们的智力活动、把知识与技术转化成信息的一种产品。软件的设计已经用工程的观念来进行管理。软件设计工作被当作一项系统工程来对待。软件的的生存周期一般可分为以下阶段:问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。我们不难看出软件工程的复杂程度是很大的。理工科高等院校把c语言作为一门基础课程,也是为了给社会培养信息技术人才。众所周知,养成一个好的习惯是非常重要的,所以c语言程序设计作为大多数工科院校学生接触的第一门程序设计语言(有的院校讲pascal),就应该让学生树立正确的观点。那么当前的程序设计教学也必须以切合将来软件工程开发的实际需要为第一目标,使学生在学习程序设计的初级阶段就树立正确的软件工程观点。这样做不仅可以为学生将来从事计算机应用设计打下良好的基础,而且有利于培养学生分析问题的完备性,以及统筹全局,协调关系的基本素质。
2.理论教学应从单一的“结构化程序设计”向“结构化与面向对象并举”转变
“结构化程序设计”方法是程序设计的基础,必须让学生掌握得坚实可靠。结构化程序设计的过程是培养学生思维能力的过程,在教学中经常发现有些学生的思维混乱。这些都是缺乏思维训练的结果。结构化程序设计的训练不仅可以让学生养成良好的程序设计习惯,而且可以有效地培养学生思维的条理性和逻辑性。所以在授课过程中要注意讲解结构化程序设计的思想时应突出两点:(1)程序的质量首先取决于它的结构。(2)程序设计的基本方法是自顶向下地逐步求精和模块化。
在c程序教学过程中,越到后面的章节,学生越会产生设计程序逐渐变难的感觉,这是不符合逻辑的一种怪现象。按照常理,C语言学的越多,说明你的程序设计知识越多,设计起程序来应该更加得心应手,那么出现这种现象的原因何在呢?当然该问题的出现的原因是多方面的,但是其中最重要的一点就是长期以来程序设计的观念不是以如何处理好对象为出发点,而是以如何使用好语言为基本点。受这种思想的影响,我们的程序设计教学大多数不是以如何解决好问题为重点,而是以讲解语法规则和语句格式为重点,是“说明书”式的教学。这样做造成的结果就是见到一个程序后学生首先想到是该用哪条语句,而不是思考怎样合理的解析。要切实解决这个问题,首先应该改变程序设计的观念。“面向对象程序设计”思想是目前最为流行、极为实用的一种程序设计方法,但是让学生直接接触“面向对象程序设计”,肯定不能对程序设计打下牢固的基础。“结构化与面向对象并举”是现代计算机程序设计的发展趋势,应该认真探索研究,让学生有一个较为轻松的学习过程。程序设计的实质就是编写处理对象的过程,所以将c与c++有机的融为一体的教材应该是首选教材,在教学过程中,我们应该从社会发展的角度进行探索研究,将目前最为流行又极为实用“面向对象程序设计”思想融合到c语言教学中。
3.c语言教学应培养学生良好的程序设计风格
具有良好的设计风格应该是程序员所具备的基本素质,在实际的项目中程序员往往都有自己的一些编程风格。目前95%以上的程序设计书籍不注重程序设计风格问题,这导致了很多学生没有良好的程序设计风格,在他们刚刚毕业踏入社会时,如果周围的同事没有良好的编程风格,那么很难通过环境来使自己提高这方面的素质,即使有提高也不容易比较全面的提高。因此在学生接触的第一门程序设计语言教学中,就应该培养学生良好的程序设计风格,使他们一进工作环境就具备这个素质。
Pascal设计者N.Writh教授十分重视程序设计风格的养成,他坚信“教给学生们以表达他们思维的语言会深深地影响他们思维和创造发明的习惯,而正是这些语言本身的混乱直接影响着学生们的程序设计的风格”,他这里所指的“这些运用”是当时那些主要用于程序设计教学的计算机语言。对学生来讲,一开始就强调程序设计风格很有必要,良好的程序设计风格不仅有助于提高程序的可靠性、可理解性、可测试性、可维护性和可重用性,而且也能够促进技术的交流,改善软件的质量。所以培养良好的程序设计风格对于初学者来说非常重要。
程序设计风格,实际上是指的是编码风格。在教学过程中应从源程序文档化,数据说明的原则,输入/输出方法这三个方面培养学生的编码风格,进而从编码原则探讨提高程序的可读性、改善程序质量的方法。
(1)源程序文档化。编码的目的是产生程序,但是为了提高程序的可维护性。源代码是需要实现文档化的。源程序文档化包括选择标识符(变量和标号)的名字、安排注释以及标准的书写格式等。
①选择标识符的命名规则。标识符包括模块名、变量名、常量名、标号名、子程序名等。这些名字应能反映它所代表的实际东西,应有一定实际意义,使其能顾名思义。另外在模块名、变量名、常量名、标号名、子程序名中使用下划线是一种风格。使用这一技术的一种广为人知的命名规则就是匈牙利命名法(变量类型由一个或两个字符表示,并且这些字符将作为变量名的前缀)。当然使用匈牙利命名法与否都没有错误,重要的是要保持一致性——在整个程序中使用相同的命名规则。这就是说,如果你在一个小组环境中编程,你和其他小组成员应该制定一种命名规则。并自始至终使用这种规则。如果有人使用了别的命名规则,那么集成的程序读起来将是很费劲的。此外,你还要与程序中用到的第三方库(如果有的话)所使用的风格保持一致。如果可能的话,你应该尽量使用与第三方库相同的命名规则,这将加强你的程序的可读性和一致性。
②注释。程序中的注释是程序设计者与程序阅读者之间通信的重要手段。注释能够帮助读者理解程序,并为后续测试维护提供明确的指导信息。因此,注释是十分重要的,大多数程序设计语言提供了使用自然语言来写注释的环境,为程序阅读者带来很大的方便。注释分为功能性注释和序言性注释。
a.功能性注释。功能性注释在源程序中,用以描述其后的语句或程序段是在做什么工作,也就是解释下面要“做什么”,而不是解释下面怎么做。对于书写功能性注释,要注意以下几点:第一描述一段程序,而不是每一个语句。第二利用缩进和空行,使程序与注释容易区别。第三注释要准确无误。
b.序言性注释。序言性注释通常位于每个程序模块的开头部分,它给出程序的整体说明,对于理解程序具有引导作用。有些软件开发部门对序言性注释做了明确而严格的规定,要求程序编制者逐项列出。有关内容包括:程序标题;有关该模块功能和目的的说明;主要算法;接口说明:包括调用形式,参数描述,子程序清单;有关数据描述;模块位置(在哪一个源文件中,或隶属于哪一个软件包);开发简历:模块设计者、复审考、复审日期。
③用标准的书写格式。源程序清单的书写建议采用以下几点:
a.每行只写一条语句;
b.用分层缩进的写法显示嵌套结构层次,这样可使程序的逻辑结构更加清晰,层次更加分明。
c.书写表达式时适当使用空格或圆括号作隔离符。
d.在注释段周围加上边框;
e.注释段与程序段、以及不同的程序段之间插入字行;
(2)数据说明采用的原则。在编写程序时,要注意数据说明的风格。
数据说明的次序如果规范,将有利于测试,排错和维护。首先说明的先后次序要固定,例如,按常量说明、简单变量类型说明、数组说明用数据块说明、所有的文件说明的顺序说明。当然在类型说明中还可进一步要求,例如按如下顺序排列:整型量说明、实型量说明、字符量说明、逻辑说明。
其次当用一个语句说明多个变量名时,应当对这些变量按字母的顺序排列。
最后对于复杂数据结构,应利用注释说明实现这个数据结构的特点。
(3)输入/输出方法。输入/输出的方式和格式应当尽量避免因设计不当给用户带来的麻烦。这就要求,源程序的输入/输出风格必须满足能否为用户接受这一原则。所以在设计程序时,应考虑以下原则:输入数据时,要使输入的步骤和操作尽可能简单,应允许使用自由格式输入;应允许缺省值;对输入的数据要进行检验,以保证每个数据的有效性。
(三)结束语
在教学过程中,我们让学生设计一个程序模拟体育彩票的销售与对奖的过程,取得了良好的效果。他不仅启发和诱导了学生独立思考、积极思维的主动性,而且充分调动了学生学习的自觉性和积极性,使学生融会贯通地掌握了所学知识,提高了分析问题和解决实际问题的能力。
搞好c程序设计的教学工作涉及的因素很多,如果以项目来驱动教学,首先让学生树立面向工程的思想,其次把教学从单一的“结构化程序设计”向“结构化与面向对象并举”转变,最后特别要培养学生养成良好的编码风格,从而使他们学会能够“干什么”,那么我们认为教学目的就达到了。
另外,团IDC网上有许多产品团购,便宜有口碑
最新文章
热门文章
推荐阅读