求大神给我编的C语言程序改错

程序要实现将一个整数字符串转换为一个数,如字符串”3678“转换为数字3678.请大神看看一下源代码哪里有错#include<stdio.h>#include<strin... 程序要实现将一个整数字符串转换为一个数,如字符串”3678“转换为数字3678.
请大神看看一下源代码哪里有错
#include<stdio.h>
#include<string.h>
chnum(char *p);
void main()
{char str[6];
int n;
gets(str);
if(*str=='-')n=-chnum(str+1);
else n=chnum(str);
printf("%d\n",n);
}
chnum(char *p)
{
int num=0,k,len,j;
len=strlen(p);
for(;*p!='\0';p++)
{k=*p-'0';
j=(--len);
while(j-->0){k=k*10;}
num=num+k;
}
return(num);
}
展开
 我来答
百度网友3841cea
2013-12-01 · 超过20用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:48.5万
展开全部
函数声明没有返回值类型 应该是int num(char ×p)下面的函数实现也没加,加上就能运行了
#include<stdio.h>
#include<string.h>
int chnum(char *p);
int main()
{
char str[6];
int n;
gets(str);
if(*str=='-')
n=-chnum(str+1);
else n=chnum(str);
printf("%d\n",n);
return 0;
}
int chnum(char *p)
{
int num=0,k,len,j;
len=strlen(p);
for(;*p!='\0';p++)
{k=*p-'0';
j=(--len);
while(j-->0){k=k*10;}
num=num+k;
}
return(num);
}
说实话没看懂你的程序,为什么if(*str=='-') n=-chnum(str+1); else n=chnum(str); 不懂
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-04
展开全部
//将一个整数字符串转换成一个整数
#include <stdio.h>
#include"math.h"
#define N 4
main()
{

int i,sum=0,b,c;
char a[N];
for(i=N-1;i>=0;i--) a[i]=getchar();
for(i=0;i<N;i++)
{
c=a[i]-48;
b=(int)pow(10,i);
sum=sum+b*c;
}
printf("%d\n",sum);
}

方法二:
#include <stdlib.h>
#include <stdio.h>
main()
{
char string[10],*endptr;
int lnumber;
gets(string);
lnumber=strtol(string, &endptr, 10);
printf("long=%d\n",lnumber);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式