1 //有10个两位整数,把这些数作以下变化,如果它是素数,
2 //则把它乘以2,若它是偶数则除以2,其余的数减1,
3 //请将变化后的10个数按从小到大的次序打印出来。
4 //2017.3.7
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <math.h>
8 /*
9 判断整数n是否为质数
10 */
11 int isPrimeNum(int n)
12 {
13 int isPrime = 1;//作为标记 是素数则为1 否0
14 if (n == 1)
15 {
16 return 0;
17 }
18 for (int i = 2; i <= (int)(sqrt((double)n)); i++)
19 {
20 if (n % i == 0)
21 {
22 isPrime = 0;
23 break;
24 }
25 }
26 return isPrime;
27 }
28 /*
29 冒泡法实现数组排序
30 */
31 void sort23(int *a, int n)
32 {
33
34 for (int i = 0; i < n - 1; i++)
35 {
36 for (int j = 0; j < n - 1 - i; j++)
37 {
38 if (a[j] > a[j + 1])
39 {
40 a[j] = a[j] ^ a[j + 1];
41 a[j + 1] = a[j] ^ a[j + 1];
42 a[j] = a[j] ^ a[j + 1];
43 }
44 }
45 }
46 }
47 void main()
48 {
49
50 int a[10];
51 for (int i = 0; i < 10; i++)
52 {
53 a[i] = 11 + rand()%100;
54 if (isPrimeNum(a[i]))
55 {
56 a[i] *= 2;
57 }
58 else if (a[i] % 2 == 0)
59 {
60 a[i] /= 2;
61 }
62 else
63 {
64 a[i] -= 1;
65 }
66 }
67
68 sort23(a, 10);
69 for (int i = 0; i < 10; i++)
70 {
71 printf("%-5d", a[i]);
72 }
73 printf("\n");
74 system("pause");
75 }