资源描述
int i, j, half, hun, ten, data;
for (i=101; i<1000; i++)
{
hun = i/100;
ten = i%100/10;
data = i%10;
if (hun == (ten+data)%10)
{
half = i/2;
for (j=2; j<half; j++)
if (i%j == 0)
break;
if (j >= half)
{
cnt++;
sum += i;
}
}
}
数的按位分离及合并
int i, j;
int a1, a2, a3, a4, k;
for (i=0; i<MAX; i++)
{
a1 = a[i]/1000;
a2 = a[i]%1000/100;
a3 = a[i]%100/10;
a4 = a[i]%10;
if ((a1 <= a2) && (a2 <= a3) && (a3 <= a4) && (a[i]%2 == 0))
{
b[cnt] = a[i];
cnt++;
}
}
for (i=0; i<cnt-1; i++)
for (j=i+1; j<cnt; j++)
if (b[i] > b[j])
{
k = b[i];
b[i] = b[j];
b[j] = k;
}
数位分解后按特定关键字进行排序
int i, j, data;
for (i=0; i<199; i++)
for (j=i+1; j<200; j++)
{
if (aa[i]%1000 > aa[j]%1000)
{
data = aa[i];
aa[i] = aa[j];
aa[j] = data;
}
else if (aa[i]%1000 == aa[j]%1000)
{
if (aa[i] < aa[j])
{
data = aa[i];
aa[i] = aa[j];
aa[j] = data;
}
}
}
for (i=0; i<10; i++)
bb[i] = aa[i];
相邻数的筛选统计
int i, j, flag = 0;
int k;
for (i=0; i<MAX-5; i++)
{
for (j=i+1; j<=i+5; j++)
if (a[i] > a[j])
{
flag = 1;
}
else
{
flag = 0;
break;
}
if (flag==1 && a[i]%2)
{
b[cnt] = a[i];
cnt++;
}
}
for (i=0; i<cnt-1; i++)
for (j=i+1; j<cnt; j++)
if (b[i] > b[j])
{
k = b[i];
b[i] = b[j];
b[j] = k;
}
数值筛选并统计
int i, thou, hun, ten, data;
int ab;
long sum = 0;
for (i=0; i<MAXNUM; i++)
{
if (xx[i] > 0)
totNum++;
thou = xx[i]/1000;
hun = xx[i]%1000/100;
ten = xx[i]%100/10;
data = xx[i]%10;
ab = thou+hun+ten+data;
if (ab%2 == 0)
{
totCnt++;
sum = sum+xx[i];
}
}
totPjz = (double)sum/totCnt;
方差计算
for (i=0; i<100; i++)
{
for (j=0; j<10; j++)
fscanf(fp, "%d,", &xx[i*10+j]);
fscanf(fp, "\n");
if (feof(fp))
break;
}
按条件筛选并替换字符
int i;
char *pf;
for (i=0; i<maxline; i++)
{
pf = xx[i];
while (*pf != 0)
{
if (*pf*11%256<=130 && *pf*11%256>32)
*pf = *pf*11%256;
pf++;
}
}
字符串特殊排序
int i, j, k, strl;
char ch;
for (i=0; i<20; i++)
{
strl = strlen(xx[i]);
for (j=1; j<strl-2; j=j+2)
for (k=j+2; k<strl; k=k+2)
if (xx[i][j] > xx[i][k])
{
ch = xx[i][j];
xx[i][j] = xx[i][k];
xx[i][k] = ch;
}
}
按结构体成员进行多关键字排序
int i, j;
PRO xy;
for (i=0; i<99; i++)
for (j=i+1; j<100; j++)
if (strcmp(sell[i].mc, sell[j].mc) > 0)
{
xy = sell[i];
sell [i] = sell[j];
sell[j] = xy;
}
else if (strcmp(sell[i].mc, sell[j].mc) == 0)
{
if (sell[i].je > sell[j].je)
{
xy = sell[i];
sell[i] = sell[j];
sell[j] = xy;
}
}
结构体筛选并排序
int i, cnt = 0, j;
data ch;
for (i=0; i<200; i++)
if (aa[i].x2 > aa[i].x1+aa[i].x3)
{
bb[cnt] = aa[i];
cnt++;
}
for (i=0; i<cnt-1; i++)
for (j=i+1; j<cnt; j++)
if (bb[i].x2+bb[i].x3 < bb[j].x2+bb[j].x3)
{
ch = bb[i];
bb[i] = bb[j];
bb[j] = ch;
}
return cnt;
选票问题
int i, count, j;
char *pf;
for (i=0; i<10; i++)
yy[i] = 0;
for (i=0; i<100; i++)
{
pf = xx[i];
count = 0;
while (*pf)
{
if (*pf == '1')
count++;
pf++;
}
if (count > 5)
for (j=0; j<10; j++)
yy[j] += xx[i][j]-'0';
}
出圈问题
int i, j, s1, w;
s1 = s;
for (i=1; i<=n; i++)
p[i-1] = i;
for (i=n; i>=2; i--)
{
s1 = (s1+m-1)%i;
if (s1 == 0)
s1 = i;
w = p[s1-1];
for (j=s1; j<=i-1; j++)
p[j-1] = p[j];
p[i-1] = w;
}
判断回文数
int i, strl, half;
char xy[20];
ltoa(n, xy, 10);
strl = strlen(xy);
half = strl/2;
for (i=0; i<half; i++)
if (xy[i] != xy[--strl])
break;
if (i >= half)
return 1;
else
return 0;
以地推关系求数列值
int f1 = 0, f2 = 1, fn;
fn = f1+f2;
while (fn <= t)
{
f1 = f2;
f2 = fn;
fn = f1+f2;
}
return fn;
用迭代法求方程的根
float X0, X1 = 0.0;
while (1)
{
X0 = X1;
X1 = (float)cos(X0);
if (fabs(X0-X1) < 1e-6)
break; }
return X1;
展开阅读全文