博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
史上最笨拙最丑陋结果又最滑稽的C代码
阅读量:6251 次
发布时间:2019-06-22

本文共 1687 字,大约阅读时间需要 5 分钟。

9.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程找出1000之内所有完数,并按下面格式输出其因子:
    6 ,Its factors are 1 2 3
解:方法一。
程序如下:
#define M 1000                       //定义寻找范围 #include 
int main(){ int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10; int i,a,n,s; for(a=2;a<=M;a++) //a是2~1000之间的整数,检查它是否完数 {n=0; //n用来累计a的因子的个数 s=a; //s用来存放尚未求出的因子之和,开始时等于a for(i=1;i
1)printf("%d,%d",k1,k2); //n>1表示a至少有2个因子 if(n>2)printf(",%d",k3); //n>2表示a至少有3个因子 if(n>3)printf(",%d",k4); //n>3表示a至少有4个因子 if(n>4)printf(",%d",k5); //以下类似 if(n>5)printf(",%d",k6); if(n>6)printf(",%d",k7); if(n>7)printf(",%d",k8); if(n>8)printf(",%d",k9); if(n>9)printf(",%d",k10); printf("\n"); } } return 0;}
——谭浩强 ,《C程序设计(第四版)学习辅导》,清华大学出版社,2010年7月,p43~44

1.

题目本身是错的:

一个数如果恰好等于它的因子之和”,完数不是这样定义的

“6的因子为1,2,3” ,6的因子还有6
2.

int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;

这个巨生猛,一口气定义了10个变量,名字也很趣。颇有愚公移山的气概,吃奶的力气都使出来了
为什么偏偏定义10个而不是9个或11个呢?莫名其妙
3.

s=a;                            //s用来存放尚未求出的因子之和,开始时等于a

实际上s不是注释中所说的含义
赋值为a的做法也非常笨拙
4.
         if(a%i==0)                   //如果i是a的因子
    {n++;        
雷人缩进的风格
5.   6.
     switch(n)                      //将找到的因子赋给k1~k9,或k10      
       {
case 1:
“将找到的因子赋给k1~k9,或k10 ”,看起来不像中国话
case 1:的位置也很扎眼
7.
if(n>1)printf("%d,%d",k1,k2);  //n>1表示a至少有2个因子
居然能一口气连写9句if,而且节约,每句只占一行,排列整齐(除了第一句)
看得出作者耐力很好
8.
if(n>3)printf(",%d",k4);       //n>3表示a至少有4个因子
if(n>4)printf(",%d",k5);       //以下类似
原来注释还能这么写,大开眼界
9.
更滑稽的是运行结果
6,Its factors are 1,2,3

28,Its factors are 1,2,4,7,14

496,Its factors are 1,2,4,8,16,31,62,124,248
根本不符合题目的要求
按下面格式输出其因子:
    6 ,Its factors are 1 2 3

附:因子的定义

假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。 需要注意的是,唯有被除数,除数,商皆为整数,余数为零时,此关系才成立。

转载地址:http://ktysa.baihongyu.com/

你可能感兴趣的文章
网页基础编程第十章
查看>>
centos7 命令行版本 安装 teamviewer
查看>>
修复XP注册表文件system损坏故障
查看>>
每周一书
查看>>
Java代码规范那些事
查看>>
我的友情链接
查看>>
如何更好地对齐分区??
查看>>
使用Python从rds上下载mysql备份文件
查看>>
react native组件的创建
查看>>
批量删除文件
查看>>
Linux网络管理
查看>>
iOS JSPatch 热修复使用
查看>>
某二级行机房搬迁
查看>>
基于MVC+EasyUI的Web开发框架经验总结(4)--使用图表控件Highcharts
查看>>
vs2015 xamarin 添加智能感知
查看>>
call to member function bind_param() on boolean...........
查看>>
刘启成_补充知识:awk:报告生成器
查看>>
Linux LVM逻辑卷配置过程详解
查看>>
【技术分享】VSAN如何处理磁盘或主机故障
查看>>
OS快捷键
查看>>