麻烦c++高手帮忙看看这个程序哪里错了,怎么改 10

#include<iostream.h>#include<stdlib.h>#include<string.h>intsum(inti,char*p[10]);intsu... #include<iostream.h>
#include<stdlib.h>
#include<string.h>
int sum( int i,char *p[10]);
int sum_sum(int a,int i,char *p[10]);
int main(int argc,char *argv[])
{
int c,i=1;
c=sum(i,argv);
i=i+3;
while(i+2<argc)
{
c=sum_sum(c,i,argv);
i=i+2;
}
cout<<c<<endl;
}
int sum(int i,char *p[10])
{
int c;
if(strcmp(p[i+1],"+")==0)
c=atoi(p[i])+atoi(p[i+2]);
if((p[i+1],"-")==0)
c=atoi(p[i])-atoi(p[i+2]);
if(strcmp(p[i+1],"*")==0)
c=atoi(p[i])*atoi(p[i+2]);
if(strcmp(p[i+1],"/")==0)
c=atoi(p[i])/atoi(p[i+2]);
return c;
}
int sum_sum(int a,int i,char *p[10])
{
int c;
if(strcmp(p[i],"+")==0)
c=a+atoi(p[i+1]);
if(strcmp(p[i],"-")==0)
c=a-atoi(p[i+1]);
if(strcmp(p[i],"*")==0)
c=a*atoi(p[i+1]);
if(strcmp(p[i],"/")==0)
c=a/atoi(p[i+1]);
return c;
}
展开
 我来答
dreamsdark
2012-10-15 · TA获得超过666个赞
知道小有建树答主
回答量:379
采纳率:100%
帮助的人:474万
展开全部
你这个程序是完成简单的计算器功能,需要修改的注意有以下几个地方
1.i的值,数组的起始下标是0,而不是1
2.sum函数,sum函数需要给c设置初值,我使用了第一个参数
不然如果没有+-*/运输费的话输出的就是乱值
3.sum_sum函数,同样也需要给c设置初值

这个程序比较简单,实际使用过程中还需要进行很多的错误处理

简单修改了代码,argc,argv都写死了,仅供测试
实际运行中请从命令行输入

#include<iostream.h>
#include<stdlib.h>
#include<string.h>

int sum( int i,char *p[10]);
int sum_sum(int a,int i,char *p[10]);

int main(int argc,char *argv[])
{
argc = 5;
argv[0] = "1";
argv[1] = "+";
argv[2] = "3";
argv[3] = "-";
argv[4] = "1";

int c,i=0;
c=sum(i,argv);
i=i+3;
while(i+2<=argc)
{
c=sum_sum(c,i,argv);
i=i+2;
}
cout<<c<<endl;
return 0;
}
int sum(int i,char *p[10])
{
int c;
c = atoi(p[0]);
if(strcmp(p[i+1],"+")==0)
c=atoi(p[i])+atoi(p[i+2]);
if((p[i+1],"-")==0)
c=atoi(p[i])-atoi(p[i+2]);
if(strcmp(p[i+1],"*")==0)
c=atoi(p[i])*atoi(p[i+2]);
if(strcmp(p[i+1],"/")==0)
c=atoi(p[i])/atoi(p[i+2]);
return c;
}
int sum_sum(int a,int i,char *p[10])
{
int c;
c = a;

if(strcmp(p[i],"+")==0)
c=a+atoi(p[i+1]);
if(strcmp(p[i],"-")==0)
c=a-atoi(p[i+1]);
if(strcmp(p[i],"*")==0)
c=a*atoi(p[i+1]);
if(strcmp(p[i],"/")==0)
c=a/atoi(p[i+1]);
return c;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式