/* #include <stdio.h> #include<string.h> #include<stdlib.h> void find_factor(int arr1[], int arr2[], int n,int sz) { while (sz) { if (n % (*arr1) == 0) { *arr2 = *arr1; arr2++; } arr1++; sz--; } } int compare_int(const void* e1, const void* e2) { return (*(int*)e1) - (*(int*)e2); } int main() { int arr1[] = { 2,3,7 }; int arr2[3] = { 0 }; int arr3[3] = {0,0,0}; int n = 0; scanf("%d", &n); int sz = sizeof(arr1) / sizeof(arr1[0]); find_factor(arr1, arr2, n,sz); qsort(arr2, 3, sizeof(int), compare_int); int i = 0; for (i = 0; i < 3; i++) { if(arr2[i] != 0) { printf("%d ", arr2[i]); } } if(memcmp(arr2,arr3,12) == 0) { printf("n\n"); } return 0; } */ #include <stdio.h> #include<stdlib.h> void find_factor(int arr1[], int arr2[], int n, int sz) { while (sz) { if (n % (*arr1) == 0) { *arr2 = *arr1; arr2++; } arr1++; sz--; } } int compare_int(const void* e1, const void* e2) { return (*(int*)e1) - (*(int*)e2); } int main() { int arr1[] = { 2,3,7 }; int arr2[3] = { 0 }; int n = 0; scanf("%d", &n); int sz = sizeof(arr1) / sizeof(arr1[0]); find_factor(arr1, arr2, n, sz); qsort(arr2, 3, sizeof(int), compare_int);//升序排序 int i = 0; int count = 0;//记录符合要求的因素个数 for (i = 0; i < 3; i++) { if (arr2[i] != 0) { printf("%d ", arr2[i]); count++; } } if (count == 0) { printf("n\n"); } return 0; }