1. 判定一个输入的自然数是否为素数
/* 判定一个输入的自然数是否为素数 */
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n){
int divisor;
if(n <= 1)
return false;
for(divisor = 2; divisor * divisor <= n; divisor++)
if(n % divisor == 0)
return false;
return true;
}
int main(){
int n;
printf("Enter a number: \n");
sacnf("%d", &n);
if(is_prime(n))
printf("Prime\n");
else
("Not prime\n");
return 0;
}
代码抄录自《C语言程序设计现代方法(第2版)》P130
2. 输出九九乘法口诀表
/* 输出九九乘法口诀表 */
#include <stdio.h>
int main(){
int i;
int j;
int result;
for(i=0; i<9; i++){
for(j=0; j<9; j++){
result = i*j;
printf("%d*%d = %-3d", i,j,result); //-3d表示左对齐占三位
}
printf("\n");
}
return 0;
}
3. 使用指针找出数组中的最大值和最小值
/* 使用指针找出数组中的最大值和最小值 */
#include <stdio.h>
#define N 10
void max_min(int a[], int n, int *max, int *min)
{
int i;
*max = *min = a[0];
for(i = 1; i < n; i++){
if(a[i] > *max)
*max = a[i];
else if(a[i] < *min)
*min = a[i]
}
}
int main()
{
int b[N], i, big, small;
printf("Enter %d numbers:", N);
for(i = 0; i < N; i++)
scanf("%d", &b[i]);
max_min(b, N, &big, &small);
printf("Largest: %d\n", big);
printf("Smallest: %d\n", small);
return 0;
}
代码抄录自《C语言程序设计现代方法(第二版)》P178
4. 选择排序
/* 选择排序 */
#include <stdio.h>
#include <stdlib.h>
void sort(int arr[], int len)
{
int i;
int j;
int tmp;
for(i = 0; i < len-1; i++){
for(j = i+1; j < len; j++){
if(arr[i] < arr[j]){
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
int main()
{
int i;
int len;
int arr[] = {
10, 1, 20, 5};
len = sizeof(arr)/sizeof(arr[0]);
sort(arr, len);
for(i = 0; i < len; i++){
printf("%d ", arr[i]);
}
putchar('\n');
return 0;
}
5. 冒泡排序
/* 冒泡排序 */
#include <stdio.h>
#include <stdlib.h>
void sort(int arr[], int len)
{
int i;
int j;
int tmp;
for(i = 0; i < len-1; i++){
//轮数
for(j = 0; j < len-1-i; j++){
//次数
if(arr[j] > arr[j+1]){
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
int main()
{
int i;
int len;
int arr[] = {
10, 1, 20, 5};
len = sizeof(arr)/sizeof(arr[0]);
sort(arr, len);
for(i = 0; i < len; i++){
printf("%d ", arr[i]);
}
putchar('\n');
return 0;
}