puts(\getch(); }
对数组元素排序 rest(int a[], int n) {
int i,low,high,t; for(i=0,low=0,high=n-1;i<=high;) {
if(a[i]>0) {
/*a[i]与a[high]交换,随之high减1*/ t=a[i];
a[i]=a[high]; a[high]=t; high--; }
else if(a[i]==0)
i++; /* 掠过该元素 */ else {
/*a[i]与a[low]交换,随之low增1, i增1*/ t=a[i];
a[i]=a[low]; a[low]=t; low++; i++; }
} }
int s[]={8,4,0,-1,6,0,-5}; main() { int i; clrscr();
printf(\for(i=0;i rest(s,sizeof(s)/sizeof(s[0])); printf(\for(i=0;i printf(\getch(); } 任意进制数的转换 /* 函数trans将无符号整数n翻译成d(2<=d<=16)进制表示的字符串s */ #define M sizeof(unsigned int)*8 int trans(unsigned n, int d, char s[]) { static char digits[] =\十六进制数字的字符 */ char buf[M+1]; int j, i = M; if(d<2||d>16) { s[0]='\\0'; /* 不合理的进制,置s为空字符串 */ return 0; /* 不合理的进制,函数返回0 */ } buf[i]='\\0'; do { buf[--i]=digits[n%d]; /*译出最低位,对应字符存入对应工作数组中*/ n/=d; }while(n); /* 将译出在工作数组中的字符串复制到s */ for(j=0;(s[j]=buf[i])!='\\0';j++,i++); /* 其中控制条件可简写成s[j]=buf[i] */ return j; } /* 主函数用于测试函数 trans() */ main() { unsigned int num = 253; int scale[]={2,3,10,16,1}; char str[33]; int i; clrscr(); for(i=0;i if(trans(num,scale[i],str)) printf(\else printf(\} printf(\getch(); } 判断回文数 /* 函数circle用于判断正整数n的d进制数表示形式是否是回文数 */ int circle(int n, int d) { int s=0,m=n; while(m) { s=s*d+m%d; m/=d; } return s==n; } /* main函数用于测试circle函数 */ int num[]={232,27,851}; int scale[]={2,10,16}; main() { int i,j; clrscr(); for(i=0;i printf(\else printf(\ printf(\getch(); } 求解钢材切割的最佳订单 #include int orderlen[N]; int total; main() { int i; clrscr(); printf(\输入钢材总长 */ scanf(\ printf(\输入定单数 */ scanf(\ printf(\输入各定单 */ for(i=0;i scanf(\ bestlen=0; /*最佳解用料的初值 */ for(i=0;i sele[i]=bestsele[i]=0; /*置当前选择和最佳选择初值 */ try(); /* 调用函数求解 */ for(i=0;i printf(\printf(\getch(); } try() { int i,len; for(len=i=0;i len+=orderlen[i]+DELTA; if(len-DELTA<=total) /* 注意最后一段可能不需要切割 */ { if(bestlen < len) { /* 找到一个更好的解 */ bestlen = len; for(i=0;i for(i=0;i sele[i]=1; /* 做选中尝试*/ try(); sele[i]=0; } } } 指向数组的指针 main() { int x,y,z; /* 定义三个int型变量 */ int *xp = &x, /* 定义指针变量xp,并赋值为x的地址,使xp指向x */ *yp = &y, /* 定义指针变量yp,并赋值为y的地址,使yp指向y */ *zp = &z; /* 定义指针变量zp,并赋值为z的地址,使zp指向z */ int t;