n以内的素数
int count = 0;
int a[1000];
int i, j, n;
a[0] = 0;
a[1] = 0;
scanf("input n = %d", &n);
for (i = 2; i < n; i++)
a[i] = i; //初始化
//核心过程 sqrt((double)1000)也是借鉴了开根号的思想。
for (i = 2; i < sqrt((double)n); i++)
if ((a[i] != 0))
{
for (j = 2 * i; j < n; j += i)
a[j] = 0;
}
//输出结果
for (i = 2; i < n; i++)
if (a[i]){
printf("%d\t", a[i]);
count++;
}
printf("%d\t", count);
1.逆序存放数组中的元素
void exchange2(int b[],int n)
{
int i,j,temp;
for(i = 0, j = n - 1 - i; i < j; i++, j--)
{
temp = b[i];
b[i] = b[j];
b[j] = temp;
}
}
2.冒泡排序
void Bubblesort(int a[], int N)
{
int i, j, n, temp;
for(i = 0; i < N - 1; i++)
{
n = N - 1;
for(j = 0; j < n - 1; j++)
{
if(a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
3.选择法排序
void Selectionsort(int a[],int N)
{
int i, j, k, temp;
for(i = 0; i < N - 1; i++)
{
k = i;
for(j = i + 1; j < N; j++)
{
if(a[j] < a[k])
k = j;
if(k != i)
{
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
}
}
4.顺序查找算法
void Search(int a[], int N, int x)
{
int i;
for(i = 0; i < N; i++)
{
if(x == a[i])
{
printf("%d在位于数组第%d个位置\n", x, i-1);
continue;
}
}
if(i > N)
printf("查无此数");
}
5.擂台算法
void Max(int a[], int N)
{
max = a[0];
for (i = 1; i < N; i++)
{
if(a[i] > max)
max = a[i];
}
}
6.Fibonacci数列
int fib(int n)
{
if (n == 0)
return 1;
else if (n == 1)
return 1;
else if (n == 2)
return 2;
else
return fib(n - 1) + fib(n - 2);
}
7.阶乘函数
1.有两个返回值
unsigned long fact(unsigned int n)
{
if (n == 0 || n == 1)
return 1;
else
return n * fact(n-1);
}
2.只有一个返回值
int factorical(int i)
{
int fact = 1, j;
for (j = 2; j <= i; j++)
{
fact *= j;
}
return fact;
}
只有一个返回值的函数适合嵌套
8.求和函数
int Summary(int N)
{
int sum = 0, i;
for(i = 1; i <= N; i++)
sum += 函数(i);
return sum;
}
9.水仙花数
int x, y, z, n;
printf("结果是:\n");
for( n=100; n<1000; n++ )
{
x = n / 100;//百位数
y = (n-x*100) / 10;//十位数
z = n % 10;//个位数
if(n == x*x*x + y*y*y + z*z*z)
printf("%d\n",n);
}