谁知道用C语言怎么编写一个能求出所有的水仙花数的程序?
1、首先需要打开Dev-c++软件,点击“新建源代码”。
2、然后按照如图所示填写代码。
3、其中:a表示的是水仙花数的百位数,b表示的是水仙花数的十位数,c表示的是水仙花数的个位数,sum表示的是所有累加下来的水仙花数。
4、if(sum==a*a*a+b*b*b+c*c*c)这一个程序步骤的作用是在规定查找的范围内找到符合这个条件的数。
5、注意a,b,c,sum的运算过程都是要在for 循环内完成,不可以在外循环进行。
6、而且还要注意区分在赋予百位数、十位数、个位数的计算用的“/","%”的区别,“/”表示除后取整数,“%”表示除后取余数。
7、最后点击“运行”即可得出要找的结果了。
1、首先需要打开Dev-c++软件,点击“新建源代码”。
2、然后按照如图所示填写代码。
3、其中:a表示的是水仙花数的百位数,b表示的是水仙花数的十位数,c表示的是水仙花数的个位数,sum表示的是所有累加下来的水仙花数。
4、if(sum==a*a*a+b*b*b+c*c*c)这一个程序步骤的作用是在规定查找的范围内找到符合这个条件的数。
5、注意a,b,c,sum的运算过程都是要在for 循环内完成,不可以在外循环进行。
6、而且还要注意区分在赋予百位数、十位数、个位数的计算用的“/","%”的区别,“/”表示除后取整数,“%”表示除后取余数。
7、最后点击“运行”即可得出要找的结果了。
#include <conio.h>
void main()
{
int iPoh,iPos,iPog,iNum = 0; /*定义变量 ipoh为百位 ipos为十位 ipog为个位,iNum为最后的水仙花数字*/
for (iNum=100; iNum<=300; iNum++)
{
iPoh = iNum/100; /*分解出数字的百 十 个位上的数字*/
iPos = (iNum%100)/10;
iPog = iNum%10;
if (iPoh*iPoh*iPoh+iPos*iPos*iPos+iPog*iPog*iPog == iNum) /*判断是否为水仙花数字*/
{
printf("%-6d",iNum);
} /*输出结果*/
}
getch();
}
经测试,可以使用!!
main()
{
int i,j,k,n;
printf("'water flower'number is:"); //提示输入水仙花数:
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("\n");
}
int ge, shi,bai;
printf("100-1000的所有水仙花数为:");
for(int i = 100 ;i<1000;i++){
ge = i %10;
shi= i / 10 %10;
bai = i / 100;
if(i == (ge*ge*ge + shi *shi*shi + bai * bai *bai))
printf("%d",i)
}
差不多这样吧
水仙花数是什么?
用C语言怎么编写一个能求出所有的水仙花数的程序?
include \\x0d\\x0a#include \\x0d\\x0a\\x0d\\x0avoid main()\\x0d\\x0a{\\x0d\\x0a int iPoh,iPos,iPog,iNum = 0; \/*定义变量 ipoh为百位 ipos为十位 ipog为个位,iNum为最后的水仙花数字*\/\\x0d\\x0a\\x0d\\x0a for (iNum=100; iNum<=300; iNum++)\\x0d\\x0a ...
用C语言编写一个程序求出任意一个输入字符的ASCII码
return 0;}
用c语言编程:输入一个四位数,求出它的个位、十位、百位、千位_百度知 ...
} C语言有以下几种取整方法:1、直接赋值给整数变量。如:int i = 2.5; 或 i = (int) 2.5;这种方法采用的是舍去小数部分,可以用于你的问题。2、C\/C++中的整数除法运算符"\/"本身就有取整功能(int \/ int),而下面介绍的取整函数返回值是double。整数除法对正数的取整是舍去小数部分,但是整...
用C语言编写一个迷宫程序,知道出处也行 ~~!
j=elem.y;d=elem.d+1; \/\/下一个方向 while(d<4) \/\/试探东南西北各个方向 { a=i+diradd[d][0];b=j+diradd[d][1];if(a==end.x && b==end.y && maze[a][b]==0) \/\/如果到了出口 {
C语言的问题求大神帮忙,用C语言编写一个四则运算程序,输出计算结果...
include "stdio.h"#include "stdlib.h"char token;int exp();int term();int factor();void error(){ fprintf(stderr,"Error\\n"); exit(1);}\/\/void match(char expecttoken){ if ( token == expecttoken) { token = getchar(); } else { error(); ...
用C语言编写程序 输入一个三位整数,打印出其各位数,十位数和百位数_百...
include<stdio.h> void main(){int a;printf("输入一个三位数");scanf("%d",&a);printf("百位:%d十位:%d个位:%d\\n",a\/100,a\/10%10,a%10);}
c语言怎么求出三个数中哪一个最大?
传统的流程图如下:流程的解释:对abc三个数进行大小的比较,总共需要比较三次;1、首先输入a,b,c三个数。2、比较a,b两个数,得出a与b中的最大值。3、然后比较b与c两个数,得出b与c的最大值。4、最后将第2步与第3步得出的最大值进行比较,得出我们需要的最大数。
c语言编写一个求三个整数和的程序并输出结果。
程序代码如下:直接编译,程序输出结果中任意输入三个数字,程序执行结果如下图所示:
求用c++\/c语言编写一个输入n输出1~n的所有排列(千万不是排列数哦)的...
int main(){ int n;cout << "Input n" << endl;\/\/ 输入n cin >> n;\/\/ 这里可以自己做输入错误检测 \/\/ 给数组动态分配大小 int* a = new int[n];\/\/ 给数组赋值(要排列的数据源)for(int i = 1; i <= n; i++){ a[i - 1] = i;} do{ \/\/ 依次输出每个数 for(int ...
C语言 编写一个程序,输入一个正整数,求出它是几位数。
思路:求一个正整数n的位数可以先定义一个变量num,并初始化为0,依次把该整数n除以10,直到其为0为止,并且每除一次10,变量num的个数就自加1,最后num的值就是该整数n的位数。参考代码:include <stdio.h>int main(){ int n,num=0;scanf("%d",&n);while(n){num++;n\/=10;}printf("...