题目一:打印水仙花数
/*题目:打印所有的水仙花数。*/
/*思路:首先依据水仙花数取值范围用计算机系统自动生成数值,然后通过水仙花定义判断是否为水仙花数,最后输出
其中水仙花数为三位数,所以取值从100到999;用for循环来进行计算机数值生成*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("水仙花数为:"); //printf不要放在循环里,否则每循环一次就会出现一次
int a,b,c,n; //分别用来记录百位,十位,个位和水仙花数
for(n=100;n<1000;n++) //用for循环来生成
{
a=n/100;
b=n%100/10;
c=n%10;
if(n==a*a*a+b*b*b+c*c*c) //水仙花数的判断 ,这里注意=为赋值符号,==才为等于
printf("%d ",n); //在%d后要加个空格或符号或换行以免结果连城一片
}
return 0;
}
题目二:输入一个整数计算各位数之和
/*题目:从键盘上任意输入一个整数x,编程计算x的每一位数字相加之和(忽略整数前的正负号)。*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x,t,s=0; //因为不知道将输入的数的位数,所以无法提前定义各个位数代表的变量,好在每次计算步骤相同可以用循环解决
printf("请输入一个整数");
scanf("%d",&x);
while(x!=0)
{
t=x%10;
s=s+t;
x=x/10;
}
printf("结果为%d",s);
return 0;
}
题目三:输入任意正整数,判断是否为回文数
/*题目:从键盘上输入任意正整数,编程判断该数是否为回文数*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b=0,num; //如果需要b=0,一定要在定义时打出来,否则计算机会对任何没赋予初值的变量随意给定一个数
printf("请输入任意整数");
scanf("%d",&a);
num=a; //需要增加一个变量num,用来保存原本的a值
while(a!=0)
{
b=b*10+a%10;
a=a/10;
}
if(num==b)
printf("该数是回文数");
else
printf("不是回文数");
return 0;
}