一个数如果恰好等于它的所有因子(不包括它本身)之和,这个数就称为"完数"。编写程序按如下要求统计自然数1---100间完数的个数:
c
//判断完数
#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;
}
冒泡法是一种常用的对多个无序整数进行排序的方法,编写程序按如下要求实现对多个整数进行排序:
c
//冒泡排序
#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;
}
选择法是一种常用的对多个无序整数进行排序的方法,编写程序按如下要求实现对多个整数进行排序:
c
//选择排序
#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;
}