第三章 控制语句 计算机基础及C语言.ppt
文本预览下载声明
// 3_2.cpp #includeiostream.h //预编译命令,将标准输入输出 //函数作为头文件 void main( ) //主函数 { //开始 int x,y; //变量x,y为整数类型 coutx=; //提示信息 cinx; //键盘输入一个整数放入x中 if(x0) y=1; //如果x0,则将1赋给y else if(x==0) y=0;//否则,如果x==0,则将0赋给y else y=-1; //否则,将-1赋给y couty=“yendl; //输出y的值 } //结束 川大附小有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 A说:不是我。 B说:是C。 C说:是D。 D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 这时在内存中系统找到一个字节。 让“==”的含义为“是” 让“!=”的含义为“不是” A说:不是我。写成关系表达式为(thisman!=‘A’) B说:是C。 写成关系表达式为(thisman==‘C’) C说:是D。 写成关系表达式为(thisman==‘D’) D说:他胡说。写成关系表达式为(thisman!=‘D’) 在C语言中字符也是有数值的,这个数值就是字符的ASCII码值 1、如何找到该人,一定是“先假设该人是做好事者,然后到每句话中去测试看有几句是真话”。“有三句是真话就确定是该人,否则换下一人再试”。 比如,先假定是A同学,让 thisman=A; 代入到四句话中 再试B同学,让thisman=B; 代入到四句话中 再试C同学,让thisman=‘C; 代入到四句话中 再试D同学,让thisman=‘D; 代入到四句话中 2、从编写程序的角度看,实现枚举最好用循环结构 for(k=1; k=4; k=k+1) { // 循环体,开始 thisman = 64+k; // 产生被试者,依次给thisman // 赋值为A,B,C,D sum = (thisman!=A)+ // A的话是否为真 (thisman==C)+ // B的话是否为真 (thisman==D)+ // C的话是否为真 (thisman!=D); // D的话是否为真 …… } // 循环体,结束 NS图 #include iostream.h void main() // 主函数 { int k,sum,g=0; // 声明变量为整数类型 for(k=1;k=4;k=k+1) // 循环从k为1到4, // k取1,2,3,4分别代表A,B,C,D { // 循环开始 sum=0; // 初始化,置0 if (k!=1) sum=sum+1;// A说的话,为真,则令sum加1; if (k==3) sum=sum+1;// B说的话,为真,则令sum加1; if (k==4) sum=sum+1;// C说的话,为真,则令sum加1; if (k!=4) sum=sum+1;// D说的话,为真,则令sum加1; if (sum==3) // 若有三句话为真话,则做下列两件事 { cout“做好事的人是 ”char(64+k)endl;// 输出 g=1; // 让有解标志置1 } } if (g!=1) cout“未找到解!”endl; // 如g不为1,则输出无解信息 } 上述程序可以简化为:3_18.cpp #include iostream.h void main( ) { int k, g; //声明变量为整数类型 for (k=1; k=4; k=k+1) //这里k既为循环控 //制变量,也表示第k个人 { if (((k!=1)+(k==3)+(k==4)+(k!=4))==3) { // 如果4句话有3句为真,则输出该人 cout“做好事的人是 ”char(64+k)endl; g=1; } } if (g!=1) cout“未找到解!”endl; // 输出无解信息 } if 语句用于实现单路、两路和多路分支。 switch也是多选一的分支语句,它是if 语句的一个补充(else if 结构),当用它编制程序时会增加可读性。 循环是一组语句,计算机反复执行这组语句直到满足终止条件为止。 while, do….while和for 三种循环语句可以相互转化。 for适用于循环次数已知的循环。 while先判定
显示全部