- 1、本文档共26页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计协会第二次课 C语言语法基础 程序 = ? 算法 + 数据结构 算法(algorithm):算法是一个表示为有限长列表的有效方法。 数据结构(data structure):数据结构是计算机中存储、组织数据的方式。 知识分类 实践中经常用到的 (牢牢掌握,占10%-20%) 不经常用,但用时能快速查到的 (了解,占70%-80%) 八辈子用不到一次的 (不深究) 能力的三个层次 知识: 学习前人的知识 解决问题的方法: 灵活运用所学的知识 解决问题的思路: 创造解决问题的方法 初学者的错误做法 只看不练,只听不练,眼高手低 死钻细节拔不出来 好高骛远,急于求成 有问题就马上提问 对计算机心存敬畏 怎么练 在线判题系统(Online Judge) 百度“杭电ACM” 统一命名“zhbit_14_XXX” 注:看群文件《ACM两种基本while循环》 《网上做题教程(必做)》 / for、while、do-while的选择 选择优先级:forwhiledo-while for循环结构清楚,循环条件清晰,应当优先考虑使用 while循环使用灵活,应用范围广,但是循环过程不清晰,所以谨慎使用 do-while只适用于一些特殊情况 循环控制 break、continue、goto goto语句是最灵活的语句,也是最危险的语句,能不用就不用。但这并不代表应该禁用goto语句,因为它非常适合跳出多重循环。 循环控制 for(i = 0; i n; i++) { for(j = 0; j n; j++) { if(需要跳出两重) goto flag; } } flag : printf(%d\n, ans); 调试方法 F10:进入调试(单步调试) F9:设置断点 F5:程序运行至断点处 F11:进入函数 监听变量 VC:查看-调试窗口-Watch VS:调试-调试-监视 Ctrl + F7:结束调试(就是编译快捷键) 数组 数组是为了方便存放一系列相同类型的变量而定义的数据结构。 数组的声明:类型 数组名[数组大小]。 数组声明后就一定要初始化,这是良好的习惯,能避免很多无谓的错误。 数组内元素通过下标访问。 数组的赋值:只能一个元素一个元素得赋值 数组名=数组的首地址=array[0] 数组 数组能开多大? 在函数内部,数组最多能开不到30万。 在函数外,数组最多能开20亿左右。 数组的初始化 可以采用如下形式初始化: int a[100]={0}; 系统会将数组的所有空间赋为0 或者: memset(a,0,sizeof(a)); 使用memset()需要包含头文件string.h 小题目 有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有那些灯开着?输入:n和k,输出开着的灯的编号。K=n=100。 样例输入:7 3 样例输出:1 5 6 7 # include iostream//库文件 # include cstring//字符串模板类 # include cmath//数学库 using namespace std; bool light[1005];//布尔型变量=真或假 int main() { int n,k,i,j; while(cinnk)//cin输入 { memset(light,0,sizeof(light));//根据题意,初始状态每盏灯都是熄灭的 for(i=1;i=k;i++)//从人的角度出发,模拟每个人的动作 for(j=1;j=n;j++)//遍历每盏灯,如果它是i的倍数就取反 if(j%i==0) light[j]=!light[j]; cout1;//对于编号为1的灯,只在k=1时将其打开,以后就没有对其操作 for(i=2;i=n;i++) if(light[i]) cout i; coutendl; #include iostream using namespace std; int main() { int n,k,a[1000],i; cinnk; for(i=0;in;i++)
文档评论(0)