#include <stdio.h>
int main()
{
int i, p[5], q[5], x, y = 20;
for ( i = 0; i <= 4; i++ )
scanf( "%d", &p[i] );
q[0] = (p[0] + p[1]) + (p[2] + p[3] + p[4]) / 7;
q[1] = p[0] + p[1] / ( (p[2] + p[3]) / p[4]);
q[2] = p[0] * p[1] / p[2];
q[3] = q[0] * q[1];
q[4] = q[1] + q[2] + q[3];
x = (q[0] + q[4] + 2) - p[(q[3] + 3) % 4];
if ( x > 10 )
y += (q[1] * 100 - q[3]) / (p[p[4] % 3] * 5);
else
y += 20 + (q[2] * 100 - q[3]) / (p[p[4] % 3] * 5);
printf( "%d,%d\n", x, y );
return(0);
}
/*注:本例中,给定的输入数据可以避免分母为 0 或数组元素下标越界。*/
#include <stdio.h>
void fun( int *a, int *b )
{
int *k;
k = a; a = b; b = k;
}
main()
{
int a = 3, b = 6, *x = &a, *y = &b;
fun( x, y );
printf( "No.1: %d,%d ", a, b );
fun( &a, &b );
printf( "No.2: %d,%d\n", a, b );
}
#include "math.h"
#include "stdio.h"
main()
{
int a1[51] = { 0 };
int i, j, t, t2, n = 50;
for ( i = 2; i <= sqrt( n ); i++ )
if ( a1[i] == 0 )
{
t2 = n / i;
for ( j = 2; j <= t2; j++ )
a1[i * j] = 1;
}
t = 0;
for ( i = 2; i <= n; i++ )
if ( a1[i] == 0 )
{
printf( "%4d", i ); t++;
if ( t % 10 == 0 )
printf( "\n" );
}
printf( "\n" );
}
#include "stdio.h"
char ch[] = { 'q', 'A', 'S', 'O', 'R', 'T', 'E', 'X', 'A', 'M', 'P', 'L', 'E' };
int n = 12;
void shift( int k, int n )
{
char v;
int j;
v = ch[k]; j = k + k;
while ( j <= n )
{
if ( (j < n) && (ch[j] < ch[j + 1]) )
j++;
if ( v < ch[j] )
{
ch[j / 2] = ch[j]; j *= 2;
}else
return;
ch[j / 2] = v;
}
}
void hpsrt( void )
{
int k;
char tmp;
for ( k = n / 2; k > 0; k-- )
shift( k, n ); /* 建堆*/
printf( "No.1: " );
for ( k = 1; k <= n; k++ )
putchar( ch[k] );
putchar( '\n' );
for ( k = n; k > 0; k-- )
{
tmp = ch[1]; ch[1] = ch[k]; ch[k] = tmp;
shift( 1, k - 1 );
}
}
main()
{
int k;
hpsrt();
printf( "No.2: " );
for ( k = 1; k <= n; k++ )
putchar( ch[k] );
putchar( '\n' );
}
#include <stdio.h>
main()
{
int bound = 1, m, n, i, j, b, p, gr[15];
printf( "input n,m\n" );
scanf( "%d%d", &n, &m );
for ( i = 1; i <= n; i++ )
bound = ①;
if ( m < 0 || m >= bound )
{
printf( "Data error!\n" );
②;
}
b = 1;
for ( i = 1; i <= n; i++ )
{
p = 0; b = b * 2;
for ( ③; j <= m; j++ )
if ( ④ )
p = 1 - p;
gr[i] = p;
}
for ( i = n; ⑤ )
printf( "%1d", gr[i] ); /* 在"%1d" 中出现的是数字1,不是字母l */
printf( "\n" );
}
#include <stdio.h>
#define NN 20
#define maxint 30000
#define maxl 500 /*邮资的最大值*/
int n, m, bestx[NN], x[NN], y[maxl], maxvalue = 0;
void result()
{
//输出结果: 最大值:maxvalue 及最优解:bestx[1:n](略)
}
void backtrace( int i, int r )
{
int j, k, z[maxl];
for ( j = 0; j <= ①; j++ )
if ( y[j] < m )
for ( k = 1; k <= m - y[j]; k++ )
if ( y[j] + k <= y[②] )
y[③] = y[j] + k;
while ( y[r] < maxint )
r++;
if ( i > n )
{
if ( r - 1 > maxvalue )
{
maxvalue = ④;
for ( j = 1; j <= n; j++ )
bestx[j] = x[j];
}
return;
}
for ( k = 0; k < maxl; k++ )
z[k] = y[k];
for ( j = ⑤; j <= r; j++ )
{
x[i] = j;
⑥;
for ( k = 0; k < maxl; k++ )
y[k] = z[k];
}
}
void main()
{
int j;
printf( "input n,m:\n" );
scanf( “ % d % d ”, &n, &m );
for ( j = 1; j < maxl; j++ )
y[j] = maxint;
y[0] = 0; x[0] = 0; x[1] = 1;
backtrace( 2, 1 );
result();
}