编写一个求出找出所有水仙花数的程序,判断一个数是否是水仙花数由子函数完成,输出由主函数完成。
若一个三位正整数,若它的所有数字立方和等于该数本身,则为水仙花数。
例如 153=13+53+33
请帮忙给出正确答案和分析,谢谢!
水仙花数是指一个三位数中各个位数的立方和等于该数本身。例如:153=13+53+33是 153=1的3次方+5的3次方+3的3次方。
#include <stdiio.h>
mian()
{
int i,l,k,n;
printf("请输入水仙花数:\n");//输入水仙花数
for(i=100;i<1000;i++)/*水仙花数是三位数,所以是从100开始,截止到999,也就是小于1000*/
{
l=i/100;/*求出百位数上的数字*/
k=i/10%10;/*求出十位数的数字*/
n=i%10;/*求出个位数上的数字*/
if(l*100+k*10+n==l*l*l+k*k*k+n*n*n)/*判断水仙花数是否相等*/
{
printf("%-6d",n);/*宽度是6,当宽度不足6的时候,会补齐空格*/
}
}
printf("\n");/*回车,下一行*/
}
编写程序maxprog完成如下要求:从键盘输入15个数,然后找出其中的最大的数和最小的数,将它们输出到屏幕上(其中最大数和最小数分别定义变量名为max和min)。
( 9 ) 下面的程序执行时 , 可以从键盘输入一个正整数 , 然后把该数的每位数字按逆序输出 。 例如 : 输入 7685 ,则输出 5867 ,输入 1000 ,则输出 0001 。请填空。
Private Sub Command1_Click()
Dim x As Integer
x=InputBox( “ 请输入一个正整数 ” )
While x>_ _[11] ___
Print x Mod 10;
x=x\10
Wend
Print__ [12] __
End Sub
在考生文件夹下有“db4.mdb”数据库。
创建实现求“水仙花数”的模块“模块1”,实现求“水仙花数”并用消息框输出。“水仙花数”是指一个三位数,其各位数字的立方和恰好等于该数的本身。例如 153=1*1*1+5*5*5+3*3*3。要求:“水仙花数”用DO While循环实现。运行该模块的结果如图所示。
编写程序,一个数如果刚好与它所有的因子之和相等,则称该数为“完数”,如:6=1+2+ 3,则6就是一个完数。求5~500之间的完数的个数。
华师C编程题库“高级语言程序设计”编程题1. 从键盘输入3个整数,求其中的最大数和最小数,并输出结果。2. 从键盘上输入一个3*3的整数矩阵,求其各行的平均值并输出,输出时保留两位小数。3. 输出x2的值,x取值从0到10。4. 从键盘上输入一个3*4的整数矩阵,要求输出其最大元素的值,以及它的行号和列号。5.编写一个程序从键盘输入10个数,要求输出其中最小的。6.编写一个函数根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。s= 7.输出1000年(包括1000年)到1999年之间的所有闰年,要求每三个一行,分行输出。8. 编写程序打印所有的“水仙花数”。“水仙花数”指一个三位数,其各位数字立方和等于该数本身,例如153是一个“水仙花数”,因为 153111333555。9.编写一个程序,输入一个3位数的正整数,然后反向输出对应的数。如:123,则输出321。参考答案:#include void main()int i,s=0,j;scanf(%d,&i);if(i=100&i=999)j=i%10;s=s+j;j=(i-j)/10%10;s=s*10+j;j=i/100;s=s*10+j;printf(the inverse number is %d,s);elseprintf(input erroe!);10. 从键盘输入10名学生的C语言成绩存入一维数组内,编写程序计算10名学生的最高分、平均分和及格人数。参考答案:#include void main()int i,score10,max,min;float ave;for(i=0;i10;i+)scanf(%d,&scorei);max=score0;min=score0;ave=score0;for(i=1;imax)max=scorei;if(scoreimin)min=scorei;ave=ave+scorei;ave=ave/10.0;printf(max=%d,min=%d,ave=%f,max,min,ave);11. 编写一个程序,判断用户输入的字符是否是数字,若是数字,则输出“a numerical character”,否则输出“other character”。参考答案:#include void main()char ch;ch=getchar();if(ch=0&ch=9)printf(a numerical character);elseprintf(other character);12. 从键盘输入12个数存入二维数组a34中,编写程序求出最大元素的值及它所在的行号和列号。参考答案:#include void main()int i,j,a34,max,index_i,index_j;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,&aij);max=a00;index_i=0;index_j=0;for(i=0;i3;i+)for(j=0;jmax)max=aij;index_i=i;index_j=j;printf(max=%d,index_x=%d,index_y=%d,max,index_i,index_j);13打印所有的“水仙花数”,所谓“水仙花数”是指一个三位正整数,其各位数字的立方和等于该数本身。参考答案:#include void main()int i, j, k, n;printf (result is: );for (n = 100; n 1000; n+)i = n / 100; j = (n
下面的程序执行时,可以从键盘输入一个正整数,然后把该数的每位数字按逆序输出。例如:输入7685,则输出5 8 6 7;输人1000,则输出0 0 0 1。请填空。 Private Sub Command1_Click Dim x As Integer X=InputBox(“请输入一个正整数”) While x> 【11】 Print x Mod 10; x=x\10 Wend Print 【12】 End Sub
程序PROGl.G的功能是:寻找并输出ll至999之间的数m,它满足m、m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如l21,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请考生编制函数int JsValue(long m)实现此功能,如果是回文数,则函数返回l,反之则返回0。最后把结果输出到文件out.dat中。 注意:部分源程序存放在test.c文件中。 请勿改动主函数main。
下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。 例如,输入一个整数27638496,函数返回值为64862。 请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANKl.C中。 不得增行或删行,也不得更改程序的结构!
以下程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,例如对于数字 12,有1*2<1+2,故不输出该数:对于27,有2*7>2+7,故输出该数。请填空。
include<iostream.h>
void main()
{
int n,k=1,s=o,m;
for (n=1:n<=100:n++=
{
k=1;s=0;
_____,
while( )
{
k*=m%10;s+=m%10;
(3) ;
下面程序的功能是:从输入的正整数中选3个数进行输出,要求这些数都是2的倍数,请填空。