c语言输入20个数字直到0为止,第4章-全国计算机等级考试二级C语言循环结构程序设计.ppt...

第4章-全国计算机等级考试二级C语言循环结构程序设计.ppt

4.7 程序举例 void main() { int m,i,k,flag; flag=1; /* 将素数标志flag设置为1 */ do { printf("input a integer:"); /* 输出提示信息 */ scanf("%ld",&m); /* 从键盘输入变量m的值 */ }while(m<=2); /* 若m<=2,则结束do~while循环 */ k=(int)sqrt(m); /* 将sqrt(m)取整后赋值给变量k */ for(i=2;i<=k;i++) if(m%i==0) /*若m不是素数,则将素数标志flag置为0并结束循环*/ { flag=0; break; } if(flag) /* 若素数标志flag=1,则输出该数是素数 */ printf("%d is a prime mumber.\n",m); else /* 若素数标志flag=0,则输出该数不是素数 */ printf("%d is not a prime mumber.\n" ,m); } 4.7 程序举例 程序运行结果: input a integer:35↙ 35 is not a prime mumber. input a integer:19↙ 19 is a prime mumber. 4.7 程序举例 例4.17 把一元钱换成5分,2分,1分的零钱,统计共有多少种换法。 用a、b、c分别表示换的5分、2分、1分的张数,则a、b、c的值应该满足:5*a+2*b+c=100。 4.7 程序举例 #include void main() { int a,b,c,cnt=0; for(a=0;a<=20;a++) /* 本循环表示5分的有多少种换法 */ for(b=0;b<=50;b++) /* 本循环表示2分的有多少种换法 */ for(c=0;c<=100;c++) /* 本循环表示1分的有多少种换法 */ if(5*a+2*b+c==100) cnt++; /* 经过三重循环后,统计出有多少种换法 */ printf("count=%d\n",cnt); /* 输出结果 */ } 程序运行结果: count=541 4.7 程序举例 例4.18 计算用户输入的两个正整数之间的所有整数中0,1,2,…,9数码的个数。例如,101~104之间总共包含四个整数101,102,103,104,其中0的个数为4,1的个数为5,2、3、4的个数为1,其余数码没有出现都为0。 要计算某整数中包含的各个数码的个数,必须对该整数进行分解,求得所包含的各个数码,其方法可以通过每次除以10取余数得到,然后再对商进行同样的处理,直到商为0时为止。对所得到的数码进行计数,可采用switch语句来实现。 4.7 程序举例 #include void main() { int num1,num2,n,s,r; int cnt0=0,cnt1=0,cnt2=0,cnt3=0,cnt4=0; int cnt5=0,cnt6=0,cnt7=0,cnt8=0,cnt9=0; do /* 循环用于从键盘上输入两个正整数 */ { printf("input two integer:"); scanf("%d %d",&num1,&num2); }while(num1<0||num2<0||num1>num2); /*若num1<0或num2<0或num1>num2,则退出循环*/ for(n=num1;n<=num2;n++) /

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值