用篩選法求100之內的素數:
void SiftPrime(int n)
{
int *arr = (int *)malloc(n*sizeof(n));//動態申請n個內存
int i; int j;
assert(arr != NULL);
for (i = 0; i < n; i++)//初始化數組
{
arr[i] = i;
}
arr[1] = arr[0] = 0;//0和1不是素數
for (i = 2; i <=sqrt(1.0*n); i++)
{
for (j = i + 1; j < n; j++)
{
if ((arr[j] != 0 )&& (j%i == 0))//j是i的倍數
{
arr[j] = 0;//!!!!賦值不是置爲
}
}
}
printf("%d之內的素數有:\n", n);
j = 0;
for (i = 2; i < n; i++)
{
if (arr[i] != 0)
{
printf("%d ", arr[i]);
j++;
if ((j % 5 == 0))
{
printf("\n");
}
}
}
printf("\n");
free(arr);
}
用選擇法對10個整數排序:
void SelectSort(int *arr, int len)
{
int minIndex;//用於標記最小值的下標
int tmp;//標記數據交換的臨時量
int i;
int j;
for (i = 0; i < len - 1; i++)//選擇的趟數
{
minIndex = i;//必須賦值
for (j = i; j < len; j++)
{
if (arr[minIndex]>arr[j])
{
minIndex = j;
}
}
if (arr[minIndex] != i)
{
tmp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = tmp;
}
}
}
//輸出以下楊輝三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
……
void PascalTriangle()
{
#define ROW 10//打印的行數
int arr[ROW][ROW];
int i;
int j;
for (i = 0; i < ROW; i++)
{
for (j = 0; j <= i; j++)
{
if ((0 == j || i == j))
{
arr[i][j] = 1;
}
else
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
}
for (i = 0; i < ROW; i++)//打印楊輝三角
{
for (j = 0; j <=i ; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
#undef ROW
}