C语言上机报告之水仙花数.
C语言程序设计
上机报告
课题名称:水仙花数的算法
院 (系):工程学院
专业班 级: 052126
学生姓名: 喻培
学 号: 20121004040
指导教师: 熊慕舟
2013年11月24日
C语言上机报告之水仙花数
上机目的:1.了解c语言和程序设计
2.学习怎样实现算法,怎样实现水仙花数的输出
上机作业:判断是否是水仙花数。
—水仙花数是指一个n位数(n>=3),它的每个位上数字n次幂之和等于它本身。
要求:
—用scanf输入的数字为任意位数字
—要求进行错误检查
—判断该数是否为水仙花数
—对判断结果进行输出
程序设计
1、NS流程图:
输入n0→sum,1→i,0→c,n→h,h→jn/10不小于1
是 否n/10→n,i+1→i跳出循环 直到n/10不小于1c
是 否h%10→b,h/10→h,sum+b的i次幂→sum,c+1→c 跳出循环直到c>=isum=j
是 否输出n“是水仙花数”输出n“不是水仙花数”
2、算法:
首先将0赋值给sum,1赋值给i,0赋值给c,n赋值给h,h赋值给j,再输入任意一位数n,对它取10的商,用该商与1比较。若不小于1,则将该商赋值给n,i+1赋值给i,再进行判断,重复以上步骤,直到n/10不小于1,跳出循环体,记住此时i的值,执行下一步。判断c是否小于i。若是,则将h取10的余数赋值给b,h除以10的商赋值给h,sum+b的i次幂赋值给sum,c+1赋值给c,再进行判断,重复以上步骤,直到c不小于i,跳出循环体,执行下一步。最后判断sum=i,若是,则输出n“是水仙花数”;若不是,则输出n“不是水仙花数”。
3、程序代码:
# include //预处理指令
# include //定义一个函数
int main() //函数首部
{
int n,b,h,j; //定义变量
sum=0; //对变量sum赋值
c=0; //对变量c赋值
i=1; //对变量i赋值
printf("please enter a number,n=?"); //输出语句
scanf("%d",&n); //输入任意数n
h=n; //对变量h赋值
while(n/10>=1) //循环结构的开始
{
n=n/10; //对变量n赋值
i=i+1; //对变量i赋值
} //第一层循环结
束
j=h; //对变量j赋值
while(c
开始
{
b=h%10; //对变量b赋值
h=h/10; //对变量h赋值