急!一道简单的二级c语言编程题!帮忙看看错哪里了?
请编写一个函数fun,它的功能是将一个数字字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。例如:若输入字符串“-1234”,则函数把它转换为整数值-...
请编写一个函数fun,它的功能是将一个数字字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。
例如:若输入字符串“-1234”,则函数把它转换为整数值-1234。
下面是我编的:
#include "stdio.h"
#include "string.h"
long fun(char *p)
{
char *a=p;
int num=0,t;
a++;
while(*a)
{
t=*a-'0';
num=num*10+t;
a++;
}
a=p;
if(*a='-') num=-num;
return num;
}
main()
{
char s[6];
long n;
printf("enter a string:\n");
gets(s);
n=fun(s);
printf("%ld\n",n);
}
问题:为什么输入+1234,输出仍为-1234?
主要看fun()就可以了! 展开
例如:若输入字符串“-1234”,则函数把它转换为整数值-1234。
下面是我编的:
#include "stdio.h"
#include "string.h"
long fun(char *p)
{
char *a=p;
int num=0,t;
a++;
while(*a)
{
t=*a-'0';
num=num*10+t;
a++;
}
a=p;
if(*a='-') num=-num;
return num;
}
main()
{
char s[6];
long n;
printf("enter a string:\n");
gets(s);
n=fun(s);
printf("%ld\n",n);
}
问题:为什么输入+1234,输出仍为-1234?
主要看fun()就可以了! 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询