input(num,name);
sort(num,name); while (flag==1)
{printf(\ scanf(\
search(number,num,name); printf(\ getchar(); c=getchar(); if (c=='N'||c=='n')
flag=0; } }
void input(int num[],char name[N][8]) {int i;
for (i=0;i {printf(\ scanf(\ printf(\ getchar(); gets(name[i]); } } void sort(int num[],char name[N][8]) { int i,j,min,templ; char temp2[8]; for (i=0;i for (j=i;j if (num[min]>num[j]) min=j; templ=num[i]; strcpy(temp2,name[i]); num[i]=num[min]; strcpy (name[i],name[min]); num[min]=templ; strcpy(name[min],temp2); } printf(\ for (i=0;i printf(\ } 36 void search(int n,int num[],char name[N][8]) {int top,bott,mid,loca,sign; top=0; bott=N-1; loca=0; sign=1; if ((n while((sign==1) && (top<=bott)) {mid=(bott+top)/2; if (n==num[mid]) {loca=mid; printf(\ sign=-1; } else if (n top=mid+1; } if (sign==1 || loca==-1) printf(\ } 8.16 #include { int htoi(char s[]); int c,i,flag,flag1; char t[MAX]; i=0; flag=0; flag1=1; printf(\ while((c=getchar())!='\\0' && i {if (c>='0' && c<='9'||c>='a' && c<='f'||c>='A' && c<='F') {flag=1; t[i++]=c; } else if (flag) {t[i]='\\0'; printf(\ number %d\\n\ printf(\ 37 c=getchar(); if (c=='N'||c=='n') flag1=0; else {flag=0; i=0; printf(\ } } } } int htoi(char s[]) { int i,n; n=0; for (i=0;s[i]!='\\0';i++) {if (s[i]>='0'&& s[i]<='9') n=n*16+s[i]-'0'; if (s[i]>='a' && s[i]<='f') n=n*16+s[i]-'a'+10; if (s[i]>='A' && s[i]<='F') n=n*16+s[i]-'A'+10; } return(n); } 8.17 #include { void convert(int n); int number; printf(\ scanf(\ printf(\ if (number<0) {putchar('-');putchar(' '); /* 先输出一个‘-’号和空格 */ number=-number; } convert(number); printf(\} void convert(int n) { int i; 38 if ((i=n/10)!=0) convert(i); putchar(n+'0'); putchar(32); } 8.18 #include {int sum_day(int month,int day); int leap(int year); int year,month,day,days; printf(\ scanf(\ printf(\ days=sum_day(month,day); /* 调用函数sum_day */ if(leap(year)&&month>=3) /* 调用函数leap */ days=days+1; printf(\} int sum_day(int month,int day) /* 函数sum_day:计算日期 */ {int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int i; for (i=1;i day+=day_tab[i]; /* 累加所在月之前天数 */ return(day); } /* 函数leap:判断是否为闰年 */ int leap(int year) {int leap; leap=year%4==0&&year0!=0||year@0==0; return(leap); } 10.1 #include void main() { void swap(int *p1,int *p2); int n1,n2,n3; int *p1,*p2,*p3; printf(\ scanf(\ p1=&n1; 39 p2=&n2; p3=&n3; if(n1>n2) swap(p1,p2); if(n1>n3) swap(p1,p3); if(n2>n3) swap(p2,p3); printf(\ } void swap(int *p1,int *p2) {int p; p=*p1; *p1=*p2; *p2=p; } 10.2 #include void main() {void swap(char *,char *); char str1[20],str2[20],str3[20]; printf(\ gets(str1); gets(str2); gets(str3); if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0) swap(str1,str3); if(strcmp(str2,str3)>0) swap(str2,str3); printf(\ printf(\ } void swap(char *p1,char *p2) {char p[20]; strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); } 10.3 方法一: #include void max_min_value(int *); void output(int *); int number[10]; input(number); 40