分支和循环习题以及知识点

简介: 分支和循环习题以及知识点

知识点

(1)闰年:能够被4整除&&不能被100整除||被400整除。

(2) while循环条件将会比循环体多执行一次。

(3)9*9乘法表,%3d 是_23(左对齐),   %-3d是 23_ (右对齐)     所以是 " %d*%d=%-3d" 或者是" %d*%d=%d\t"  

编程

(1)写代码将三个整数数按从大到小输出。输入:2 3 1 输出:3 2 1

代码展示:

1. #include <stdio.h>
2. int main()
3. {
4.     int a = 2;
5.     int b = 3;
6.     int c = 1;
7.     scanf("%d%d%d",&a, &b,&c);
8. if(a<b)
9.     {
10.         int tmp = a;
11.         a = b;
12.         b = tmp;
13.     }
14. if(a<c)
15.     {
16.         int tmp = a;
17.         a = c;
18.         c = tmp;
19.     }
20. if(b<c)
21.     {
22.         int tmp = b;
23.         b = c;
24.         c = tmp;
25.     }
26.     printf("a=%d b=%d c=%d\n", a, b, c);
27. return 0;
28. }

代码理解:三个数字比较大小,我们想要的是a>b,a>c,b>c. 但是数字会出现我们不想要的,所以写出三个if语句,来实现我们想要的结果即可。

(2)给定两个数,求这两个数的最大公约数

代码1展示:辗转相除法

1. #include <stdio.h>
2. int main()
3. {
4.  int a = 18;
5.  int b = 24;
6.  int c = 0;
7.  while (c = a % b)
8.  {
9.    a = b;
10.     b = c;
11.   }
12.   printf("%d\n", b);
13.   return 0;
14. }

被除数/除数的余数作为下一个除数,除数作为被除数。当整除的时候,此时的除数就是最大公约数。

代码2展示:(最大公约数一定<=两者中较小的数,首先找出较小的数,然后再依次减一)

1. #include <stdio.h>
2. int main()
3. {
4.  int a = 0;
5.  int b = 0;
6.  int c = 0;
7.  int i = 0;
8.  scanf("%d %d", &a, &b);
9.  if (a > b)
10.     c = b;
11.   else
12.     c = a;
13.   for (i = c; i >= 0; i--)
14.   {
15.     if ((a % i == 0) && (b % i == 0))
16.       break;
17.   }
18.   printf("%d", i);
19.   return 0;
20. }

拓展:最小公倍数=m*n/最大公约数

(3)打印1000—2000 之间的闰年 判断是否是闰年

代码展示:

1. #include <stdio.h>
2. int main()
3. {
4.  int year = 0;
5.  for (year = 1000; year <= 2000; year++)
6.  {
7.    if (year % 4 == 0) 
8.    {
9.      if (year % 100 != 0)
10.       {
11.         printf("%d ", year);
12.       }
13.     }
14.     if (year % 400 == 0)
15.     {
16.       printf("%d ", year);
17.     }
18.   }
19.   return 0;
20. }

代码2展示:

1. #include <stdio.h>
2. int main()
3. {
4.  int year = 0;
5.  for (year = 1000; year <= 2000; year++)
6.  {
7.    if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
8.    {
9.      printf("%d ", year);
10.     }
11.   }
12.   return 0;
13. }

(4)打印100—200之间的素数

代码1展示:

1. #include <stdio.h>
2. int main()
3. {
4.  int i = 0;
5.  int j = 0;
6.  printf("100~200间的素数有:");
7.  for (i = 100; i <= 200; i++)
8.  {
9.    for (j = 2; j < i; j++)
10.     {
11.       if (i % j == 0)
12.         break;
13.     }
14.     {
15.       if (j == i)
16.         printf("%d ", i);
17.     }
18.   }
19.   return 0;
20. }

代码2展示:

1. #include <stdio.h>
2. #include <math.h>
3. int main()
4. {
5.  int i = 0;
6.  int j = 0;
7.  int shu = 1;
8.  printf("100~200间的素数有:");
9.  for (i = 101; i <= 200; i+=2)
10.   {
11.     shu = 1;
12.     for (j = 2; j <= sqrt(i); j++)
13.     {
14.       if (i % j == 0)
15.       {
16.         shu = 0;
17.         break;
18.       }
19. 
20.     }
21.     if (shu == 1)
22.       printf("%d ", i);
23.   }
24. }

知识点:(1)如果一个数a = m * n,一定有一个数 小于等于 a的开平方

(2)偶数是不能有素数的

(3)sqrt(a) C语言中的开平方 <math.h>

(5)求10个数字的最大值

代码1展示:

1. #include <stdio.h>
2. int main()
3. {
4.  int max = 0;
5.  int a = 0;
6.  int i = 0;
7.  for (i = 0; i < 10; i++)
8.  {
9.    if (i == 0)
10.     {
11.       scanf("%d", &a);
12.       max = a;
13.     }
14.     else
15.     {
16.       scanf("%d", &a);
17.       if (a > max)
18.         max = a;
19.     }
20.   }
21.   printf("%d", max);
22.   return 0;
23. }

代码2展示:

1. #include <stdio.h>
2. int main()
3. {
4.  int arr[10] = { 0 };
5.  int i = 0;
6.  for (i = 0; i < 10; i++)
7.  {
8.    scanf("%d", &arr[i]);
9.  }
10.   int max = arr[1];
11.   for (i = 0; i < 10; i++)
12.   {
13.     if (arr[i] > max)
14.       max = arr[i];
15.   }
16.   printf("%d", max);
17.   return 0;
18. }


相关文章
|
7月前
|
C语言
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
|
7月前
|
Go C语言
爱上C语言:分支与循环(循环篇)
爱上C语言:分支与循环(循环篇)
|
6月前
质数类判断方法(蓝桥杯,循环分支题型)
质数类判断方法(蓝桥杯,循环分支题型)
循环初级一(附小练习和详细代码答案)
循环初级一(附小练习和详细代码答案)
112 0
|
7月前
|
机器学习/深度学习 C语言
【C语言】分支循环第二章 1
【C语言】分支循环第二章
|
7月前
|
C语言
【C语言】分支循环第二章2
【C语言】分支循环第二章
|
算法 C语言 数据安全/隐私保护
【C语言刷题】分支与循环系列
【C语言刷题】分支与循环系列
102 1
|
7月前
|
vr&ar Python
有限状态机详解与举例(leetcode 1023)
有限状态机详解与举例(leetcode 1023)
135 0
|
编译器 C语言
初阶C语言:分支与循环(1)--分支语句
C语言中的分支与循环语句分步详解,本篇是分支语句。
10788 2
|
C语言
超详细的分支和循环语句知识点
超详细的分支和循环语句知识点