C程序设计语言 第二版 新版 第三章 自用

时间:2022-12-14 20:39:50

3-1
#include<stdio.h>
int main()
{
return 0;
}
int binsearch(int x,int v[],int n)
{
int low,heigh,mid;
low=0;
heigh=n-1;
mid=(low+heigh)/2;
while(low<=heigh &&x!=v[mid])
{
if(x<v[mid]) heigh=mid-1;
else low = mid+1;
mid=(low+heigh)/2;
}
if(x==v[mid])
return mid;
else
return -1;
}

3-2
#include<stdio.h>
int main()
{
return 0;
}
void escape(char s[],char t[])
{
int i,j;
for(i=j=0;t[i]!='\0';i++)
{
switch(t[i]){
case '\n':
{s[j++]='\\';s[j++]='n';break;}
case '\t':
{s[j++]='\\';s[j++]='t';break;}
default:
{s[j++]=t[i];break;}
}
}
s[j]='\0';

}
void unsecape(char s[],char t[])
{
int i,j;
for(i=j=0;t[i]!='\0';i++)
{
switch(t[i]){
case '\\':
switch(t[++i]){
case 'n':
s[j++]='\n';break;
case 't':
s[j++]='\t';break;
default:
s[j++]='\\';s[j++]=t[i];break;
}
default:
s[j++]=t[i];break;
}
}
s[j]='\0';
}
3-3
#include<stdio.h>
int main()
{
printf("yes");
return 0;
}
void expand(char s1[],char s2[])
{
char c;
int i,j;
i=j=0;
while((c=s1[i++])!='\0')
{
if(s1[i]=='-'&& s1[i+1]>c)
{
i++;
while(c<s1[i])
s2[j++]=c++;
}
else s2[j++]=c;
}
s2[j]='\0';
}
3-4
#include<stdio.h>
#define abx(x) ((x)<0? -(x):(x))
int main()
{
printf("yes");
return 0;
}
void itoa(int n,char s[])
{
int i,sign;
sign=n;
i=0;
do{
s[i++]=abx(n%10) +'0';
}while((n/=10)!=0);
if(sign <0)
s[i++]='-';
s[i]='\0';
//reverse(s);
}
3-5
#include<stdio.h>
int main()
{
printf("yes");
return 0;
}
void itoa(int n,char s[],int b)
{
int i,j,sign;
if((sign=n)<0) n=-n;
i=0;
do
{
j=n%b;
s[i++]=(j<=9)? j+'0':j+'a'-10;
}while((n/=b)>0);
if(sign<0) s[i++]='-';
s[i]='\0';
//reverse(s);
}
3-6
#include<stdio.h>
#define abx(x) ((x)<0? -(x):(x))
int main()
{
printf("yes");
return 0;
}
void itoa(int n,char s[],int w)
{
int i,sign;
sign=n;
i=0;
do{
s[i++]=abx(n%10) +'0';
}while((n/=10)!=0);
if(sign <0)
s[i++]='-';
while(w>=i)
s[i++]=' ';
s[i]='\0';
//reverse(s);
}