一个数如果恰好等于它的所有因子(不包括它本身)之和,这个数就称为“完数”。编写程序按如下要求统计自然数1—100间完数的个数:
//判断完数 #include <stdio.h> //完数判断函数 int isPerfect(int n) { int sum = 0; for (int i = 1; i < n; i++) { if(n % i == 0) { sum += i; } } if(sum == n) { return 1; } else { return 0; } } int main() { int mid = 0; //假设不是完数 //判断100以内的完数 printf("1-100以内的完数有:\n"); for (int i = 1; i <= 100; i++) { mid = isPerfect(i); //调用函数判断完数 if(mid) { //如果为真,则输出该数字 printf("%d ",i); } } return 0; }
冒泡法是一种常用的对多个无序整数进行排序的方法,编写程序按如下要求实现对多个整数进行排序:
//冒泡排序 #include <stdio.h> //冒泡排序函数 void bubbleSort(int a[], int n) { for (int i = 0; i < n; i++) { for (int j = 0; j < n - i - 1; j++) { if (a[j] > a[j+1]) { int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } } int main() { int a[10]; printf("请输入要排序的元素:\n"); for (int i = 0; i < 10; i++) { scanf("%d",&a[i]); } //调用排序函数 bubbleSort(a,10); //输出排序后的元素 printf("排序后的元素为:\n"); for (int i = 0; i < 10; i++) { printf("%d ",a[i]); } return 0; }
选择法是一种常用的对多个无序整数进行排序的方法,编写程序按如下要求实现对多个整数进行排序:
//选择排序 #include <stdio.h> //选择排序函数 void selectSort(int a[], int n) { int mid = 0; //记录数组下标 for (int i = 0; i < n - 1; i++) { mid = i; //记录下标 for (int j = i + 1; j < n; j++) { if(a[mid] > a[j]) { mid = j; } } if(mid != i) { int temp = a[mid]; a[mid] = a[i]; a[i] = temp; } } } int main() { int a[10]; printf("请输入要排序的元素:\n"); for (int i = 0; i < 10; i++) { scanf("%d",&a[i]); } //调用排序函数 selectSort(a,10); //输出排序后的元素 printf("排序后的元素为:\n"); for (int i = 0; i < 10; i++) { printf("%d ",a[i]); } return 0; }