1、水仙花数打印
//打印水仙花数
#include <stdio.h>
int my_pow(int a, int b)
{
int k;
int sum = a;
for (k = 1; k < b; k++)
{
sum = sum * a;
}
return sum;
}
int detect(int x,int y)
{
if (x > 0)
{
return(my_pow(x%10, y) + detect(x / 10, y));
}
return 0;
}
int main()
{C
int i;
int j;
for (i = 0; i <= 100000; i++)
{
j = 1;
while (i / (my_pow(10, j++)));
if (i == detect(i, j-1))
{
printf("%d ", i);
}
}
return 0;
}
2、菱形打印
//打印菱形
#define ROW 55
#define COL 55
#include <stdio.h>
int main()
{
char a[ROW][COL];
int i;
int j;
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
a[i][j]=' ';
}
}
int left = COL/2;
int right = left+1;
for (i = 0; i < ROW; i++)
{
for (j = 0; j < right - left; j++)
{
a[i][left+j] = '*';
}
if (i < COL/2)
{
left--;
right++;
}
else
{
left++;
right--;
}
}
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
printf("%c", a[i][j]);
}
printf("\n");
}
return 0;
}
智力题目
1、一元钱可以换一瓶水,两个空瓶可以换一瓶水,问如果有20元多少瓶水
//一瓶汽水一元两个空瓶换一个汽水
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int input;
scanf("%d", &input);
int sum = input;
while (input!=0&&input!=1)
{
sum = sum + input/2;
input = input%2+input / 2;
}
printf("%d",sum);
return 0;
}
2、找出凶手
A说A不是 B说凶手是C C说凶手是D D说C在说谎
#include <stdio.h>
int main()
{
char killer = '0';
for (killer='A';killer<='D';killer++)
{
if ((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3)
{
printf("killer 是 %c", killer);
break;
}
}
return 0;
}