题目分析:解答此题之前,要搞明白什么是闰年。
闰年:能被4整除且不能被100整数,或者能被400整数。
那么我们自然而然的就想起了if分支语句
#include
int main()
{
int year;
scanf("%d", &year);
if (year % 400 == 0) //能被400整除一定是闰年!
printf("闰年!");
else if (year % 4 == 0 && year % 100 != 0)//能被4整除且不能被100整除才是闰年!
printf("闰年!");
else
printf("非闰年!");
return 0;
}
题目分析:判断四个数中的最大整数,
解法一:我们可以假设其中的一个数为最大数,然后不断用分支语句来验证这个数是不是最大数,如果不是最大数,就将比他的的数假设为最大数,直到比对完全结束。
#include
int main()
{
int a, b, c, d;
int max;
scanf("%d %d %d %d", &a, &b, &c, &d);
max = a;
if (b > max)
max = b;
if (c > max)
max = c;
if (d > max)
max = d;
printf("%d", max);
return 0;
}
解法二:使用三目运算符
#include
int main()
{
int a, b, c, d, max1,max2;
scanf("%d %d %d %d",&a,&b,&c,&d);
max1 = (a> b) ? a : b;
max2 = (c > d) ? c : d;
if (max1 > max2)
printf("%d", max1);
else
printf("%d", max2);
return 0;
}
解法三:上述代码if语句出现的次数有点多,四个还好,但是要是100个数就显得特别麻烦,这时我们自然想到可以用循环语句来减少这种重复性的操作。
#include
#define NUMBER 4 //定义NUMBER 为 4
int main()
{
int a;
int i = 0;
int max = 0;
for (i = 0; i < NUMBER; i++)
{
scanf("%d", &a);
if (a > max)
max = a;
}
printf("%d", max);
return 0;
}
题目分析:计算2的n次方,我们第一反应就是一直累乘,但是题目要求我们不能累乘。
解法一:利用pow函数。
#include
#include
int main()
{
int a = 0;
scanf("%d", &a);
printf("%.lf\n", pow(2, a));
return 0;
}
解法二:利用题目的提示:左移(<<)运算符
左移(<<)运算符的作用:
将数值转化为二进制数后再左移一位。
移位规则:左边抛弃、右边补0
所以,在数字没有溢出的情况下,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
#include
int main()
{
int a = 0;
scanf("%d", &a);
printf("%d\n", 1 << a);
return 0;
}
#include
int main()
{
int n;
scanf("%d", &n);
if (n % 2 == 0 && n % 3 == 0 && n % 7 == 0)
printf("2 3 7\n");
else if (n % 2 == 0 && n % 3 == 0 && n % 7 != 0)
printf("2 3\n");
else if (n % 2 == 0 && n % 3 != 0 && n % 7 == 0)
printf("2 7\n");
else if (n % 2 != 0 && n % 3 == 0 && n % 7 == 0)
printf("3 7\n");
else if (n % 2 == 0 && n % 3 != 0 && n % 7 != 0)
printf("2\n");
else if (n % 2 != 0 && n % 3 == 0 && n % 7 != 0)
printf("3\n");
else if (n % 2 != 0 && n % 3 != 0 && n % 7 == 0)
printf("7\n");
else
printf("n\n");
return 0;
}
解法二:利用循环,减少操作。
#include
int main()
{
int arr[3] = { 2,3,7 };
int ch, f = 0;
scanf("%d", &ch);
for (int i = 0; i < 3; i++)
{
if (ch % arr[i] == 0)
{
f = 1;
printf("%d ", arr[i]);
}
}
if (f == 0)
printf("n");
return 0;
}
题目分析:和判断闰年那题差不多,这题我们要先判断是否能构成三角形,再来判断是那种三角形
#include
int main()
{
int a,b,c;
while(scanf("%d %d %d",&a,&b,&c)!=EOF)
{
if((a+b)>c && (a+c)>b && (b+c)>a)//判断能构成三角形
{
if((a==b) && (a==c) && (b==c))
{
printf("Equilateral triangle!\n");
}
else if(((a==b) && (a!=c)) || ((a==c) && (a!=b)) || ((b==c) && (b!=a)))
{
printf("Isosceles triangle!\n");
}
else
{
printf("Ordinary triangle!\n");
}
}
else
{
printf("Not a triangle!\n");
}
}
return 0;
}
题目分析:99乘法表的格式是x*x=y的格式,所以我们要嵌套两个循环
#include
int main()
{
for(int i=0;i<9;i++)
{
for(int j=1;j<=i;j++)
{
printf("%d*%d=%2d ",j,i,i*j);
}
printf("\n");
}
return 0;
}
题目分析:取余可以得到最后一位数字,再将数字除10再取余可以得到倒数第二位的数字,以此类推
#include
int main()
{
int n;
scanf("%d",&n);
while(n!=0)
{
printf("%d",n%10);
n=n/10;
}
return 0;
}
#include
int main()
{
int a,b,c,d,i;
scanf("%d",&a);
for(i=0;i<a;i++)
{
scanf("%d ",&d);
if(d>b)
b=d;
if(d<c)
c=d;
}
printf("%d",b-c);
}
题目分析:对个、十、百位数字取余,若取余结果为9,就是包含数字9的数
#include
int main()
{
int n = 0, i = 0;
for (i = 0;i < 2019;i++)
{
if (i % 10 == 9 || (i / 10) % 10 == 9 || (i / 100) % 10 == 9)
{
n++;
}
}
printf("%d", n);
}
思路:
将圣诞树的树叶部分分成三层,第一层打印一个星第二层打印两个星第三层打印三个星
再设置打印的间距,及应该打印的目标行数。
#include
int main()
{
int n;
printf("请输入圣诞树的层数:");
scanf("%d", &n);
for (int i = 1; i <= 3 * n; i++)
{ //圣诞树头
if (i % 3 == 1)
{ //第一层一个*的
for (int j = i; j < 3 * n; j++)
printf(" ");
for (int k = i; k > 0; k -= 3)
{
printf("* ");
system("color 1");
}
printf("\n");
}
else if (i % 3 == 2) {//第二层两个*的
for (int j = i; j < 3 * n; j++)
printf(" ");
for (int k = i; k > 0; k -= 3)
{
printf("* * ");
system("color 2");
}
printf("\n");
}
else if (i % 3 == 0) {//第三层三个*的
for (int j = i; j < 3 * n; j++)
printf(" ");
for (int k = i; k > 0; k -= 3)
{
printf("* * * ");
system("color 3");
}
printf("\n");
}
}
for (int i = 1; i <= n; i++) {//树干,n个1*的
for (int i = 1; i < 3 * n; i++)
printf(" ");
printf("*\n");
system("color 0c");
}
return 0;
//圣诞树好难啊,看了半天才看明白
//可是和你聊天更难啊,看了几个星期还没看懂~
//printf(" 你已经很好了,可是我是个懦弱的胆小鬼!\n");
//printf(" 希望你每天都能开心!");
}