1.打印所有水仙花数。
所谓水仙花是指一个三位数,其各位数字的立方和等于该数
#include <stdio.h>
int main(){
int num;
int g,s,b;
for(num=100;num<1000;num++)
{
g=num%10;
s=num/10%10;
b=num/100%10;
if(num==(g*g*g+s*s*s+b*b*b))
{
printf("%4d\n",num);
}
}
}
2.输入一个不多于5位的正整数,判断他是几位数,并逆序输出。
#include <stdio.h>
int main(void){
int xnum,num,i=1,flag=0;
int value=0;
while(1)
{
printf("请输入一个不大于五位的数--->");
scanf("%d",&num);
if((num/100000)!=0)
{
printf("您输入的数大于五位数,请重新输入\n");
continue;
}
break;
}
xnum = num;
while(1)
{ i = i*10;
if((num/10)!=0)
{
flag++;
num/=10;
}
else
{
flag++;
break;
}
}
printf("这是一个%d位数\n",flag);
while(xnum)
{
value = value*10 + xnum%10;
xnum/=10;
}
printf("这个数的逆序为:%d\n",value);
}
3.从键盘输入一个十进制整形数据(最大4位数),计算并输出其各位上数字之和(忽略负号)
#include <stdio.h>
int main(void)
{
int num,value=0;
while(1)
{
printf("请输入一个不大于四位的数--->");
scanf("%d",&num);
if((num/10000)!=0)
{
printf("您输入的数大于四位数,请重新输入\n");
continue;
}
break;
}
while(num)
{
value += num%10;
num/=10;
}
printf("各位数的和为:%d\n",value);
}
4.回文数判断,输入一个整数判断是否是回文。例如:12321 ,8888
#include <stdio.h>
int main()
{
int num,xnum,value=0;
printf("判断是否为回文数--->");
scanf("%d",&xnum);
num = xnum;
while(xnum)
{
value = value*10 + xnum%10;
xnum/=10;
}
if(num == value)
{
printf("这是一个回文数%d\n",num);
}
else
{
printf("%d不是回文数\n",num);
}
}
5.判断1~100之间所有素数。(只能被本身整除的数,比如:3 、7、13 )
#include <stdio.h>
int main()
{
int i,j,num;
printf("1~100以内的素数为:\n");
for(i=1;i<100;i++)
{
for(j=2;j<=i;j++)
{
if((i%j==0) && (i!=j)) //除以每一位数
{
break;
}
else if(i==j)
{
printf("%d\n",i);
}
}
}
}
6.打印以下图案:
1
121
12321
1234321
12321
121
1
#include <stdio.h>
char arr[7]={0x10,0x38,0x7c,0xfe,0x7c,0x38,0x10};
int main()
{
int i,j;
int num=0;
for(i=0;i<7;i++)
{
for(j=0;j<8;j++)
{
if(((arr[i]<<j)& 0x80) == 0x80)
{
if(j<4) num++;
else num--;
printf("%d",num);
}
else
{
printf(" ");
}
}
num = 0;
printf("\n");
}
}