1 //有10个两位整数,把这些数作以下变化,如果它是素数, 2 //则把它乘以2,若它是偶数则除以2,其余的数减1, 3 //请将变化后的10个数按从小到大的次序打印出来。 4 //2017.3.7 5 #include 6 #include 7 #include 8 /* 9 判断整数n是否为质数10 */11 int isPrimeNum(int n)12 {13 int isPrime = 1;//作为标记 是素数则为1 否014 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 else63 {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 }