//取出正整数中的偶数字,并用这些数字构成一个最大数
#include <stdio.h>
#define N 10
int main()
{
int i, j, k = 0, t, d, a[N];
long n, m = 0;
printf("Please enter a long integer.\n");
scanf("%d", &n);
while (n > 0) //依次取出每位数,并将偶数存入数组
{
t = n % 10;
if (t % 2 == 0)
a[k++] = t;
n /= 10;
}
for (i = 0; i < k - 1; i++)
{
d = i;
for (j = i + 1; j < k; j++)
if (a[j] > a[d])
d = j;
if (d != i)
{
t = a[d];
a[d] = a[i];
a[i] = t;
}
}
for (i = 0; i < k; i++)
m = m * 10 + a[i];
printf("max=%ld\n", m);
system("pause");
return 0;
}
实验8.2
//验证在7~2000,差恰好是1898的素数
#include <stdio.h>
int main()
{
int i, j, a[1000], k = 0, m, n, flag = 0;
for (i = 7; i < 2000; i += 2)
{
for (j = 2; j <= i / 2; j++)
if (i % j == 0)
break;
if (j > i / 2)
a[k++] = i;
}
for (i = 0; i < k - 1; i++)
{
for (j = 1; j < k; j++)
if (a[j] - a[i] == 1898)
{
m = i;
n = j;
flag = 1;
break;
}
}
if (flag)
printf("%d-%d=%d\n", a[n], a[m], a[n] - a[m]);
else
printf("not found!");
system("pause");
return 0;
}
实验8.3
//在给定的数据中查找一个数据是否存在
#include <stdio.h>
#define N 10
int main()
{
int a[N], i, x;
printf("输入%d个整数: \n", N);
for (i = 0; i <= (N - 1); i++)
scanf("%d", &a[i]);
printf("输入要找的数x: \n");
scanf("%d", &x);
for (i = 0; i <= (N - 1) && a[i] != x; i++)
;
if (i >= N)
printf("未找到\n");
else
printf("找到了,是第%d个数\n", i + 1);
system("pause");
return 0;
}
实验8.4
//将一个整数插入到已经排好序的数组中,使该数组仍有序
#include <stdio.h>
int main()
{
int i, j, t, n, a[11] = {12, 31, 5, 7, 19, 4, 8, 16, 32, 42};
for (i