关于#c语言#的问题:c语言的一道课后题,我按自己的想法写了程序,运行没结果不知道咋改进了

遇到一个题目:从100999各个位数的立方和相加等于这个数本身就是水仙花数,用程序列出100999的水仙花数

img


第一个程序是我自己写的运行下来调试控制台没有任何东西

img


第二个是标准答案,正确的运行结果
想请教一下为什么我写的程序不能出结果

int c = s / 100;这才是最高位

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7523727
  • 这篇博客也不错, 你可以看下1000以内的水仙花数有哪些?(3位数的水仙花数有哪些?)
  • 除此之外, 这篇博客: 50个数据结构案例及详细步骤分析 - C语言版中的 【例1-8】设计一个算法,打印出所有的“水仙花数”,“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 算法设计如下:

    img

    算法性能分析

    算法性能分析的目的是看算法实际是否可行,在同一问题存在多个算法时,评价算法性能的标准主要从算法执行时间与占用存储空间两方面考虑,即用算法执行所需的时间和存储空间来判断一个算法的优劣。

    当然,设计者希望选用一个所占存储空间小、运行时间短、其他性能也好的算法,但是现实中很难做到十全十美,原因是上述要求有时相互抵触。节约算法的执行时间往往要以牺牲更多的存储空间为代价;而为了节省存储空间又可能要以牺牲更多的时间为代价。因此只能根据具体情况有所侧重。若该程序使用次数较少,则力求算法简明易懂,易于转换为上机的程序。

    当一个算法转换成程序并在计算机上执行时,其运行所需要的时间取决于下列因素。

    (1)硬件的速度。

    (2)书写程序的语言。

    (3)编译程序所生成目标代码的质量。对于代码优化较好的编译程序,其生成的程序质量较高。

    (4)问题的规模。例如,求100以内的素数与求1000以内的素数,其执行时间必然是不同的。

    1.算法的执行时间和语句频度

    算法的执行时间是指一个算法中所有语句执行时间的总和。每条语句的执行时间等于该条语句的执行次数乘以执行一次所需的实际时间。

    语句频度是指该语句在一个算法中重复执行的次数。一个算法的时间耗费就是该算法中所有语句的频度之和。