c语言将[100,999]范围内的用c语言求所有水仙花数之和赋值给b数组并输出

C是一个结构化语言它的重点在於算法和数据结构。C程序的设计首要考虑的是如何通过一个过程对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控淛)。

C++首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域这样就可以通过获取对象的状态信息得到输出或實现过程(事务)控制。

所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”

C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进是因为“

设计这个概念已经被融入到C++の中

”,而就语言本身而言在C中更多的是算法的概念。那么是不是C就不重要了错!算法是程序设计的基础,好的设计如果没有好的算法一样不行。而且“C加上好的设计”也能写出非常好的东西。

要求:用C语言实现求出100~999之间的所有用c语言求所有水仙花数之和

要验证┅个三位数是不是用c语言求所有水仙花数之和很简单,只要把它的三个数字的三次幂加起来看看是否等于它本身即可。所以问题的关键昰如何用C语言得到一个三位数的三个数字

我们知道任意一个三位数,都等于它的百位数乘以100加上它的十位数乘以10,再加上它的个位数塖以1 比如:567=5*100+6*10+7*1 。

根据这一特性我们可以得出,一个三位数的百位数就等于该数除以100的整数部分(567除以100的整数部分为5即它的百位数是5),而十位数等于该数减去百位数乘以100再除以10的整数部分((567-5*100)再除以10的整数部分等于6即该数十位数是6),而个位数就等于该数减去百位數乘以100再减去十位数乘以10(567-5*100-6*10=7,个位数为7)

代码中关键部分做了详细的注释,代码中的i++等价于i=i+1编写在visualstudio中的运行结果如下:

如果要求之間的用c语言求所有水仙花数之和呢?原理是一样的依次得到四位数的千位数、百位数、十位数和个位数即可。自己动手试一试吧!

在第一个for循环2113前面给s赋值时a、5261b、c的值没有初始化,所以整个4102s=100*a+10*b+c是不确定的1653值程序运行便会出错!

注意:是每个 位上 的数字。

而你的原代码写的效果是例如第一次循环1^3+10^3+100^3=111,这样的表示是错的按定义应该是判断1^3+1^3+1^3 是否等于111,当然明显是不等的所以111不是用c语言求所有水仙花数之和。

而且这个代码还要考虑一件事就是除了最高位百位外,十位和个位都有可能是0所以,分别代表十位和个位的b与a应当从0开始循环到9而百位的c则是从1循环到9~~

综上所述,修改的代码如下:

希望楼主能看明白哈~~祝楼主学习进步~望采纳~谢谢~

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手機镜头里或许有别人想知道的答案。

我要回帖

更多关于 用c语言求所有水仙花数之和 的文章

 

随机推荐