急急急,谢谢
对下面例子的边界情况做各种检查,然后根据需要按照第1章的风格和本章的建议对它们进行修改。
(a) 这个函数想计算阶乘:
int factorial(int n)
{
int fac;
fac=1;
while(n--)
fac*=n;
return fac;
}
(b) 这个程序段是要把一个字符串里的字符按一行一个的方式输出:
i=0;
do
{
putchar(s[i++]);
putchar(\n');
}while(s[i]!='\0');
(c) 这个函数希望从src复制字符串到dest:
void strcpy(char *dest,char *src)
{
int i;
for(i=0;src[i]!='\0';i++)
dest[i]=src[i];
}
(d) 这是另一个字符串复制,要从s拷贝n个字符到t:
void strncpy(char *t,char *s,int n)
while(n>0&&*s!='\0'){
*t=*s;
t++;
s++;
n--;}
}
(e) 一个数值比较:
if(i>j)
printf("%d is greater than greater d.\n",i,j);
esle
printf("%d is smaller than greater d.\n",i,j);
(f) 一个字符类检查:
if(c>='A'&&C<='Z'){
if(c<='L')
cout<<"first half of all alphabet";
esle
cout<<"seconf half of all alphabet";
}