经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
【实战练习】上几道C语言的下酒菜!经典例题,巩固基础!
来源:cnblogs  作者:C语言编程学习基地  时间:2021/1/18 16:30:08  对本文有异议

? 求完数

题目:一个数如果恰好等于它的因子之和,这个数就称为完数,C语言编程找出1000之内的所有完数,并输出其因子。 

解题思路:6的因子为1,2,3,而6=1+2+3,因此6是“完数”,1不用判断,直接从2开始,因为1的因子只有1。

源代码演示:

  1. #include<stdio.h>//头文件
  2.  
  3. int main()//主函数
  4. {
  5. int number,s,i;//定义变量
  6.  
  7. for(number=2;number<1000;number++)//for循环
  8. {
  9. //直接从2开始
  10. s=0;
  11. for(i=1;i<number;i++)
  12. {
  13. //检查i是否是m的因子
  14.  
  15. if((number%i)==0)
  16. {
  17. //如果是的话
  18. s=s+i;
  19. }
  20. }
  21. if(s==number)
  22. {
  23. printf("%d的因子为:",number);
  24. for(i=1;i<number;i++)
  25. {
  26. if(number%i==0)
  27. {
  28. //判断是否是因子,是的话就输出
  29. printf("%d ",i);
  30. }
  31. }
  32. printf("\n");//换行
  33. }
  34. }
  35. return 0;//主函数返回值为0
  36. }

——————————

编译运行结果如下:

6的因子为:1 2 3

28的因子为:1 2 4 7 14

496的因子为:1 2 4 8 16 31 62 124 248

 

? 求某个数列前20项和

题目:有一个分数列:2/1,3/2,5/3,8/5,13/8,21/13...,C语言编程求出这个数列的前20项之和。 

解析思路:读者看着道题的时候,首先要观察一下有什么规律,这种类型的题都是有规律的,先观察出来规律,然后思考怎么写代码。

源代码演示:

  1. #include//头文件
  2. intmain()//主函数
  3. {
  4. int i;//定义整型变量,用于for循环
  5.  
  6. double a=2,b=1,sum=0,temp;//定义双精度浮点型变量
  7.  
  8. for(i=1;i<=20;i++)//for循环
  9. {
  10. sum=sum+a/b;//分母为前面的分子和分母之和
  11. temp=a;
  12. a=a+b;
  13. b=temp;//分子为前面的分母
  14. }
  15. printf("sum=%7.7f\n",sum);//输出和
  16.  
  17. return 0;//主函数返回值为0
  18. }

————————

编译运行结果如下:

sum=32.6602608

 

? 输出水仙花数

题目:C语言编程输出100-1000之间所有的“水仙花数”,所谓的“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

解题思路:153是一个水仙花数,因为153=1^3+5^3+3^3,逐个位数判断即可,写代码的时候要考虑到每一位。

源代码演示:

  1. #include//头文件
  2. intmain()//主函数
  3. {
  4. int i,j,k,narcissistic_Number;//定义整型变量
  5. printf("水仙花数是:\n");//提示语句
  6. //小林这里要测试的100~1000之间的水仙花数
  7.  
  8. for(narcissistic_Number=100;narcissistic_Number<1000;narcissistic_Number++)
  9. {
  10. i=narcissistic_Number/100;//百位数字
  11. j=narcissistic_Number/10-i*10;//十位数字
  12. k=narcissistic_Number%10;//各位数字
  13.  
  14. if(narcissistic_Number==i*i*i+j*j*j+k*k*k)//符合其各位数字立方和等于该数本身
  15. {
  16. printf("%d ",narcissistic_Number);//输出这个数
  17. }
  18. }
  19. printf("\n");//换行
  20.  
  21. return 0;//主函数返回值为0
  22. }

————————

编译运行结果如下:

水仙花数是:153 370 371 407

 

?  求1!+2!+3!+...20!

题目:C语言编程求1!+2!+3!+...20!

解题思路:sum不应该定义为int或者long型,假如使用的编译器是Visual C++6.0时,int和long型数据在内存都占4个字节,数据的范围在 -21亿~21亿。如果将sum定义为double型,以得到更多的精度。在输出时,用22.15e格式,使数据宽度为22,数字部分中小数位数为15位。

源代码演示:

  1. #include//头文件
  2. intmain()//主函数
  3. {
  4. double sum=0,temp=1;//双精度浮点型变量
  5.  
  6. int i;//定义整型变量
  7.  
  8. for(i=1;i<=20;i++)//for循环
  9. {
  10. temp=temp*i;
  11. sum=sum+temp;
  12. }
  13. printf("结果:%22.15e\n",sum);//输出结果,注意输出的格式
  14.  
  15. return 0;//主函数返回值为0
  16. }

————————

编译运行结果如下:

结果:2.561327494111820e+018


 

最后,不管你是转行也好,初学也罢,进阶也可,如果你想学编程~

【值得关注】我的 C/C++编程学习交流俱乐部!【点击进入】

问题答疑,学习交流,技术探讨,还有超多编程资源大全,零基础的视频也超棒~

原文链接:http://www.cnblogs.com/huya-edu/p/14292483.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号