《C程序设计(第三版)》习题(编程题)解答(8)

2020-02-21 15:47

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 ((nnum[N-1])) loca=-1;

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 #define MAX 1000 void main()

{ 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 main()

{ 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 void main()

{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 #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 main() { void input(int *);

void max_min_value(int *);

void output(int *); int number[10];

input(number);

40


《C程序设计(第三版)》习题(编程题)解答(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于进一步加强建筑工地职工夜校管理的通知

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: