}
return(x/n1-(y/n1)*(y/n1)); } 8-15
#include
void input(int num[],char name[N][8]); void sort(int num[],char name[N][8]);
void search(int num[],char name[N][8],int n); int flag,n,num[N]; char c,name[N][8]; input(num,name); sort(num,name);
for(flag=1;flag;) {
printf(\输入要查找的职工号\\n\\n\ scanf(\
search(num,name,n);
printf(\是否继续查找?Y/N ?\\n\\n\ c=getchar();
if(c=='N'||c=='n') flag=0; } }
void input(int num[],char name[N][8]) { int i;
for(i=0;i printf(\输入职工号\\n\\n\ scanf(\ printf(\输入职工姓名\\n\\n\ getchar(); gets(name[i]); } } void sort(int num[],char name[N][8]) { int i,j,min,temp1; char temp2[8]; for(i=0;i { min=i; for(j=i;j if(num[min]>num[j]) min=j; } temp1=num[i]; strcpy(temp2,name[i]); num[i]=num[min]; strcpy(name[i],name[min]); num[min]=temp1; strcpy(name[min],temp2); } printf(\排序结果如下:\\n\\n\ for(i=0;i printf(\职工号:m 姓名:s\\n\\n\ } } void search(int num[],char name[N][8],int n) { int low,high,mid,flag; flag=0; low=0; high=N-1; if((n mid=(low+high)/2; if(n==num[mid]) { flag=mid+1; printf(\第M号职工的名字为:%8s\\n\\n\ break; } else if(n if(flag==0||flag==-1) printf(\不存在该职工\\n\\n\} 8-16 #include #define N1 1000 void main() { int exchange(char a[]); int i=0,flag=0,flag1=1; char c,a[N1]; printf(\输入一个十六进制数\\n\\n\ while(((c=getchar())!='\\0')&&(i if(((c>='0')&&(c<='9'))||((c>='a')&&(c<='f'))||((c>='A')&&(c<='F'))) { a[i++]=c; flag=1; } else if(flag==1) { a[i]='\\0'; printf(\对应的十进制数为:%d\\n\\n\ printf(\是否继续?Y/N ?\\n\\n\ c=getchar(); if(c=='N'||c=='n') flag1=0; else { flag=0; i=0; printf(\输入一个十六进制数\\n\\n\ } } } } int exchange(char a[]) { int i,n=0; for(i=0;a[i]!='\\0';i++) { if((a[i]>='0')&&(a[i]<='9')) n=n*16+a[i]-'0'; if((a[i]>='a')&&(a[i]<='f')) n=n*16+a[i]-'a'+10; if((a[i]>='A')&&(a[i]<='F')) n=n*16+a[i]-'A'+10; } return(n); } 8-17 #include void main() { void exchange(int n); int n; printf(\输入一个整数\\n\\n\ scanf(\ printf(\输出是:\\n\\n\ if(n<0) { putchar('-'); n=-n; } exchange(n); printf(\} void exchange(int n) { int i; if((i=n/10)!=0) exchange(i); putchar(n+'0'); } 8-18 #include int day_num(int year,int mon,int day); int year,mon,day; printf(\输入年、月、日\\n\\n\ scanf(\ printf(\输入的日期是当年的第%d天\\n\\n\} int date[]={31,28,31,30,31,30,31,31,30,31,30,31}; int day_num(int year,int mon,int day) { int i,days=0; for(i=0;i days+=date[i]; } days+=day; if((year%4==0)&&((year0)!=0)||(year@0==0)) days+=1; return days; } 第九章 9-1 #include #define exchange(x,y) t=x;x=y;y=t void main() { int x,y,t; printf(\输入x,y\\n\\n\ scanf(\ exchange(x,y); printf(\交换后x=%d,y=%d\\n\\n\} 9-2 #include int x,y; printf(\输入x,y\\n\\n\ scanf(\ printf(\余数为%d\\n\\n\} 9-3 #include #define s(a,b,c) ((a+b+c)/2) #define area(a,b,c,s) sqrt(s*(s-a)*(s-b)*(s-c)) void main() { float a,b,c,s,area; char m; int flag=1; while(flag==1) { printf(\输入a,b,c\\n\\n\ scanf(\ if(a>0&&b>0&&c>0&&(a+b>c||a+c>b||b+c>a)&&(fabs(a-b) area=area(a,b,c,s);