腾讯面试-程序题

来源:互联网 发布:西安天网软件陈一丁 编辑:程序博客网 时间:2024/06/05 06:17
//==============================================================
//程序功能:将输入的整数转换成字符串
//程序思路:面试技巧。输入、输出、差错检查
//程序设计语言:c
//===================================================================
#include<stdio.h>


const char* ToString(int val);


int main()
{




int i = 0 ;


const char* ch = ToString(-123);




for(i = 0 ; ch[i]!='\0' ;i++)
printf("%c",ch[i]);
printf("\n");


getchar();


return 0 ;
}


//这是面试中比较难的一个环节,需要考虑全面
const char* ToString(int val)
{
//对输入数据进行差错检查,可以采用口头检查(向面试官咨询,将各种可能说出来)
//1:这个数值在整数能表示的范围内,值是合法的)
//变量的设计一般这个时候需要留有一定的空间,特别C语言,方便临时增加变量
char result_temp[15] ; //作为结果临时存储对象
char* result ;//作为最终的存储对象,这样才能够传出去,要不然局部变量传不出去
int temp ; //临时计算变量
int val1 ; //不能破坏原始数据
int i = 0 ; //作为临时结果变量
int j = 0 ;


//对输入的数据分类讨论
val1 = val ;




if( val1 >= 0 )
{
while( val1 )
{
temp = val1 % 10 ;
result_temp[i++] = temp + '0' ;
val1 = val1 / 10 ;
}


result = new char[i] ;


result[i] = '\0' ;
for(i--,j=0;i>=0;i--,j++)
result[j] = result_temp[i] ;
}
else
{
result_temp[i++] = '-' ;
val1 = 0 - val1 ;
while( val1 )
{
temp = val1 % 10 ;
result_temp[i++] = temp + '0' ;
val1 = val1 / 10 ;
}


result = new char[i] ;


result[i] = '\0' ;
for(i--,j=1;i>0;i--,j++)
result[j] = result_temp[i] ;
result[0] = '-' ;
}


return result ;


}
0 0
原创粉丝点击