C语言程序设计第七讲(1).ppt_第1页
C语言程序设计第七讲(1).ppt_第2页
C语言程序设计第七讲(1).ppt_第3页
C语言程序设计第七讲(1).ppt_第4页
C语言程序设计第七讲(1).ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

作业1:输入一行字符,以字符0作为结束标志,输出这行字符对应的ASCII码值之和,读入ch,s+=ch,ch!=0,s=0,输出s,读入ch,#include int main( ) char ch; int s=0; cinch; while(ch!=0) s+=ch; cinch; couts; return 0; ,作业2:有一分数序列 , 计算该序列的前n项和,n由键盘输入。,作 业,for i=1 to n,输入n,s=0,a=2,b=1,s=s+a/b,c=a+b,b=a,a=c,输出s,#include int main( ) int a=2, b=1, c, n, i; float s=0; cinn; for(i=1; i=n; i+) s+=a/b; c=a+b; b=a; a=c; couts; return 0; ,s+=1.0*a/b;,例1:计算 的值, 其中n值从键盘输入。,s+=f/i,for i=1 to n,s=0,输入n,输出s,f=1,f=-f,举 例,#include void main( ) int i, n, f=1; float s=0; cinn; for(i=1; i=n; i+) s+=1.0*f/i; f=-f; coutsendl; ,例2:计算 直到t的值大于或等于10000为止,求此时t和n的值。,举 例,t+=2n,t10000,t=0,输出t和?,n=0,n+,#include “iostream.h“ #include “math.h“ void main( ) int t=0, n=0; do t+=pow(2, n); n+; while(t10000); cout“t=“t; cout“nn=“n-1; ,n-1,程 序 举 例,例3: 从任意n个数中找出最大的数。,1.假设第一个数最大,2.第二个数与max比较,3.第三个数与max比较,n.第n个数与max比较,读入x,max=x,读入x,xmax,真,max=x,for i=2 to n,读入n,输出max,假,大数max,大数max,大数max,读数,比较,n-1次,void main( ),int x, max, i, n;,max=x;,for(i=2; i=n; i+),scanf(“%d“, ,max=xmax?x:max;,printf(“max=%d“,max);,printf(“Input n, x:“);,scanf(“%d%d“,#include ,第一数max,例4:判断一个数n是否是素数。,如何判断,设一个标志leap,取两个值,1:是素数,0:不是素数,输入n,for i=2 to n-1,n%i=0,T,F,leap=0,leap=1,leap=1,T,yes,F,no,举 例,素数,大于1,只能被1和它本身整除。,n不能被2,3,n-1之中的数整除,验证:,#include “iostream.h“ void main( ) int n, leap, i; cinn; leap=1; for(i=2; in; i+) if(n%i=0 ) leap=0; if(leap=1) cout“yes“; else cout“no“; ,例5:判断一个数n中是否包含数字1。,设一个标志flag,取两个值:,1:包含,0:不包含,flag=1,T,yes,F,no,举 例,#include int main( ) int n, flag=0; cinn; while(n0) if(n%10=1) flag=1; n/=10; if(flag=1) cout“yesn“; else cout“non“; return 0; ,n0,flag=0,输入n,flag=1,n%10!=1,n=n/10,T,F,例6:求1000以内所有素数。,判断一个数是否素数;,从2-1000进行循环,是素数则输出;,for( n=2; n=1000; n+ ) leap=1; for(i=2; in; i+) if(n%i=0) leap=0; if(leap=1) coutn“ “; ,外 循 环,内 循 环,循环的嵌套,两重循环,多重循环,例7: 打印九九乘法表。,举 例,1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81,i:19,j:1i,外,内,#include int main() int i, j; for( i=1; i=9; i+ ) for( j=1; j=i; j+) printf( “%d*%d=%d “, i, j, i*j ); printf( “n“ ); return 0; ,例7: 打印九九乘法表。,举 例,每只公鸡值5元,母鸡值3元,小鸡三只值1元。用100元钱买100只鸡,问公鸡、母鸡、小鸡各买多少只?,设:x,y,z分别是公鸡、母鸡和小鸡的只数。,由题意:x+y+z=100 5x+3y+z/3=100,COOK HEN CHICK,0 25 75,3 20 77,4 18 78,7 13 80,8 11 81,11 6 83,12 4 84,例8、百钱买百鸡问题,#include void main( ) int x, y, z; printf(“ COOK HEN CHICKn“); for(x=0; x=20; x+) for(y=0; y=33; y+) z=100-x-y; if (5*x+3*y+z/3=100) printf(“%6d%6d%6dn“,x,y,z); ,&z%3=0),(,例9:找出1000以内的所有完数(完数:因子之和等于它本身),#include int main( ) int n, i, s; for(n=1; n=1000; n+) s=0; for(i=1; in; i+) if(n%i=0) s+=i; if(s=n) coutn“ “; return 0; ,循环辅助控制,break语句,可用于循环体中, 使程序从整个循环中退出 .,continue语句,可用于循环体中, 使程序从本次循环中退出 , 继续下一次循环 .,以dowhile循环为例 :,break;,continue;,#include “stdio.h“ void main( ) int i; for(i=1; i8; i+) if(i%2=0) break; else printf(“%d“,i); printf(“*“); printf(“%d“,i); ,#include “stdio.h“ void main( ) int i; for(i=1; i8; i+) if(i%2=0) continue; else printf(“%d“,i); printf(“*“); printf(“%d“,i); ,1*3*5*7*8,例10: 写出下列程序运行结果。,1*2,根据leap取值得出结论,从2到n-1测试是否有n的因子,读入n,leap=1,若有,将leap=0,#include void main( ) int n, leap, i; cinn; leap=1; for(i=2; in; i+) if(n%i=0) leap=0; if(leap) cout“yes“; else cout“no“; ,判断素数,非0为真 0为假,for(i=2; i=sqrt(n); i+),break;,if(isqrt(n),#include ,#include #include void main( ) int n, i; cinn; for(i=2; isqrt(n) cout“yes“; else cout“no“; ,#include #include void main( ) int n, i; cinn; i=2; while(isqrt(n) cout“yes“; else cout“no“; ,#include void main() int i, j, x=0; for(i=0; i2; i+) x+; for(j=0; j=3; j+) if(j%2) continue; x+; x+; printf(“x=%dn“, x); ,例11:写结果。,x=8,举 例,continue和break语句只对本层循环有效。,作 业,课本:P77 第15题,实验指导书:P94 第1、2题,循环结构(二),测试平台,第1题: 一个数恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,并且6=1+2+3,因此6是“完数”。编写程序找出小于给定数n的所有“完数”,n由键盘输入。 样例输入:1000 样例输出:6 28 496 第2题: 编写程序找出一个正整数n的各位数字中最大的数字,n由键盘输入。 样例输入:1234 样例输出:4 第3题: 编写程序求m到n之间(包括m和n,m=n)素数的个数及其平均值,如果没有素数则输出NO,m和n由键盘输入。 样例输入:1 10 样例输出:4 4.25 样例输入:8 10 样例输出:NO,第4题: 求数列 计算该序列的前N项和SN,直到SN 大于q为止,q由键盘输入。 样例输入:50 样例输出:50.4167 第5题: 编写程序求能整除x且不是偶数的整数个数及其累加和,x由键盘输入。 样例输入:6 样例输出:2 4 第6题: 求数列 计算该序列的前n项和,n由键盘输入。 样例输入:50 样例输出:1.96079,第7题: 求数列 输入正整数n和任意数x,计算该序列的前n项和。 样例输入:5 0.5 样例输出:1.39349 第8题: 将一笔钱(大于8分,小于1元,精确到分)换算成1分、2分和5分的硬币组合(1分、2分、5分的硬币均至少有1枚)。输入整数金额(单位:分),问有几种换算方法? 样例输入:10 样例输出:2 第9题: 输入一行字符,以回车结束,统计出其中英文字符、数字字符、空格和其它字符的个数。 样例输入:aB()1 * 样例输出:2 1 1 3,输入字符用getchar,在一个正方形的灰度图片上,肿瘤是一块矩形的区域,肿瘤的边缘所在的像素点在图片中用0表示。其他肿瘤内核肿瘤外的点都用255

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论