C++错误:C2065。请各位大虾帮忙调一下代码。好了就给50分

#include"stdio.h"#include"string.h"#include"math.h"charchrs[1001]={0};int*ck=NULL;int... #include "stdio.h"
#include "string.h"
#include "math.h"
char chrs[1001]={0};
int *ck=NULL;
int main()
{
char ch=0;
double tmp=0;
double a=0,b=0,c=0,d=0;
double ans=0;
int len=0,i=0,mark=0,flag=0;
scanf("%s",chrs);
len=strlen(chrs);
ck=(int *)malloc(len*sizeof(int));////////////////////////////////////错误在这行
for(i=0;i<len;i++)
{
if(chrs[i]=='=')
{ck[i]=11; mark=i;}
if(chrs[i]=='+') ck[i]=10;
if(chrs[i]=='-') ck[i]=-10;
if(chrs[i]>='a'&&chrs[i]<='z') {ck[i]=12; flag=i;}
if(chrs[i]>='0'&&chrs[i]<='9') ck[i]=chrs[i]-'0';
}
i=0;
while(i<mark)
{
if(i<mark&&ck[i]==12)
{
a++;
i++;
}
else if(i<mark&&ck[i]>=0&&ck[i]<=9)
{
while(i<mark&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;
}
if(i<mark&&ck[i]==12)
{
a+=tmp;
i++;
}
else
{
b+=tmp;
}
tmp=0;
}
else if(i<mark&&ck[i]==10)
{
i++;
if(i<mark&&ck[i]==12)
{
a++;
i++;
continue;
}
while(i<mark&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;
}
if(i<mark&&ck[i]==12)
{
a+=tmp;
i++;
}
else
{
b+=tmp;
}
tmp=0;
}
else if(i<mark&&ck[i]==-10)
{
i++;
if(i<mark&&ck[i]==12)
{
a--;
i++;
continue;
}
while(i<mark&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;
}
if(i<mark&&ck[i]==12)

a-=tmp;
i++;
}
else
{
b-=tmp;
}
tmp=0;
}
}
i++;
tmp=0;
while(i<len)
{
if(i<len&&ck[i]==12)
{
c+=1;
i++;
}
else if(i<len&&ck[i]>=0&&ck[i]<=9)
{
while(i<len&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;
}
if(i<len&&ck[i]==12)
{
c+=tmp;
i++;
}
else
{
d+=tmp;
}
tmp=0;

else if(i<len&&ck[i]==10)
{
i++;
if(i<len&&ck[i]==12)
{
c+=1.0;
i++;
continue;

while(i<len&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;

if(i<len&&ck[i]==12)
{
c+=tmp;
i++;
}
else
{
d+=tmp;
}
tmp=0;
}
else if(i<len&&ck[i]==-10)
{
i++;
if(i<len&&ck[i]==12)
{
c-=1.0;
i++;
tmp=0;
continue;
}
while(i<len&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;
}
if(i<len&&ck[i]==12)

c-=tmp;
i++;
}
else
{
d-=tmp;
}
tmp=0;
}
}
if(d-b>0&&a-c>0||d-b<0&&a-c<0) ans=abs((d-b)/(a-c));
else ans=(d-b)/(a-c);
printf("%c=%.3lf",chrs[flag],ans);
system("pause");///////////////////////////////////////////错误在这行
return 0;
}
错误原因:
--------------------Configuration: aa - Win32 Debug--------------------
Compiling...
aaa.cpp
c:\program files\microsoft visual studio\myprojects\aa\aaa.cpp(17) : error C2065: 'malloc' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\aa\aaa.cpp(183) : warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data
c:\program files\microsoft visual studio\myprojects\aa\aaa.cpp(186) : error C2065: 'system' : undeclared identifier
Error executing cl.exe.
aa.exe - 2 error(s), 1 warning(s)
展开
 我来答
双月夜雪
2011-06-22 · TA获得超过384个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:490万
展开全部
加上
#include "stdafx.h"
#include "stdlib.h"
有5,6个大括号的输入法不对
我在vc6编译通过的

#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "math.h"
#include "stdlib.h"
char chrs[1001]={0};
int *ck=NULL;
int main()
{
char ch=0;
double tmp=0;
double a=0,b=0,c=0,d=0;
double ans=0;
int len=0,i=0,mark=0,flag=0;
scanf("%s",chrs);
len=strlen(chrs);
ck=(int *)malloc(len*sizeof(int));////////////////////////////////////错误在这行
for(i=0;i<len;i++)
{
if(chrs[i]=='=')
{ck[i]=11; mark=i;}
if(chrs[i]=='+') ck[i]=10;
if(chrs[i]=='-') ck[i]=-10;
if(chrs[i]>='a'&&chrs[i]<='z') {ck[i]=12; flag=i;}
if(chrs[i]>='0'&&chrs[i]<='9') ck[i]=chrs[i]-'0';
}
i=0;
while(i<mark)
{
if(i<mark&&ck[i]==12)
{
a++;
i++;
}
else if(i<mark&&ck[i]>=0&&ck[i]<=9)
{
while(i<mark&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;
}
if(i<mark&&ck[i]==12)
{
a+=tmp;
i++;
}
else
{
b+=tmp;
}
tmp=0;
}
else if(i<mark&&ck[i]==10)
{
i++;
if(i<mark&&ck[i]==12)
{
a++;
i++;
continue;
}
while(i<mark&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;
}
if(i<mark&&ck[i]==12)
{
a+=tmp;
i++;
}
else
{
b+=tmp;
}
tmp=0;
}
else if(i<mark&&ck[i]==-10)
{
i++;
if(i<mark&&ck[i]==12)
{
a--;
i++;
continue;
}
while(i<mark&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;
}
if(i<mark&&ck[i]==12)
{
a-=tmp;
i++;
}
else
{
b-=tmp;
}
tmp=0;
}
}
i++;
tmp=0;
while(i<len)
{
if(i<len&&ck[i]==12)
{
c+=1;
i++;
}
else if(i<len&&ck[i]>=0&&ck[i]<=9)
{
while(i<len&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;
}
if(i<len&&ck[i]==12)
{
c+=tmp;
i++;
}
else
{
d+=tmp;
}
tmp=0;
}
else if(i<len&&ck[i]==10)
{
i++;
if(i<len&&ck[i]==12)
{
c+=1.0;
i++;
continue;
}
while(i<len&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;
}
if(i<len&&ck[i]==12)
{
c+=tmp;
i++;
}
else
{
d+=tmp;
}
tmp=0;
}
else if(i<len&&ck[i]==-10)
{
i++;
if(i<len&&ck[i]==12)
{
c-=1.0;
i++;
tmp=0;
continue;
}
while(i<len&&ck[i]>=0&&ck[i]<=9)
{
tmp=tmp*10+ck[i];
i++;
}
if(i<len&&ck[i]==12)
{
c-=tmp;
i++;
}
else
{
d-=tmp;
}
tmp=0;
}
}
if(d-b>0&&a-c>0||d-b<0&&a-c<0) ans=abs((d-b)/(a-c));
else ans=(d-b)/(a-c);
printf("%c=%.3lf",chrs[flag],ans);
system("pause");///////////////////////////////////////////错误在这行
return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式