读书人

各位朋友 帮帮忙 小程序,该怎么解决

发布时间: 2012-03-19 22:03:05 作者: rapoo

各位朋友 帮帮忙 小程序
问题可能是在循环中for(i=0;i<=100;i++)中 ,若换成for(i=0;i<=20;i++)等计算次数较少的情况下结果就没错了,本人是用vc++ 6.0的环境 不知道是环境的错还是代码有问题 希望各位帮助。

代码如下:

// 液晶显示计算器.cpp : 定义控制台应用程序的入口点。
//
#include <iostream>

using namespace std;

int main()
{
int A,b,e,f,i,m,n,d,s;
int a[100];
char c,g;

while(d)
{
cout<<" 请输入表达式,操作数和操作符之间用空格分隔"<<endl;
cout<<"加减乘除的的运算符分别用“ +、-、*、/ ”表示:"<<endl;
cin>>A>>c>>b;
switch(c)
{
case '+':f=A+b;break;
case '-':f=A-b;break;
case '*':f=A*b;break;
case '/':f=A/b;break;
}
if(f<0)
e=-f;
else
e=f;

for(i=0;i<=100;i++)
{

if(e!=0)
{
s=e%10;
a[i]=s;
}
e=e/10;
}

n=i;

for(m=n;m>=0;m--)
{
switch(a[m])
{
case 0:
case 2:
case 3:
case 5:
case 6:
case 7:
case 8:
case 9:cout<<" --";break;
case 1:
case 4:cout<<" ";break;
}
}

cout<<endl;
cout<<" ";

for(m=n;m>=0;m--)
{
switch(a[m])
{
case 0:
case 4:
case 8:
case 9:cout<<"| |";break;
case 1:
case 2:
case 3:
case 7:cout<<" |";break;
case 5:
case 6:cout<<"| ";break;
}
}
cout<<endl;
cout<<" ";

for(m=n;m>=0;m--)
{
switch(a[m])
{
case 0:
case 4:
case 8:
case 9:cout<<"| |";break;
case 1:
case 2:
case 3:
case 7:cout<<" |";break;
case 5:
case 6:cout<<"| ";break;
}
}
cout<<endl;


if(f<0)
cout<<" -- ";
else
cout<<" ";

for(m=n;m>=0;m--)
{
switch(a[m])
{
case 0:
case 1:
case 7:cout<<" ";break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 8:
case 9:cout<<"-- ";break;
}
}
cout<<endl;
cout<<" ";

for(m=n;m>=0;m--)
{
switch(a[m])
{
case 0:
case 6:
case 8:cout<<"| |";break;
case 1:
case 3:
case 4:
case 5:
case 7:
case 9:cout<<" |";break;
case 2:cout<<"| ";break;
}
}
cout<<endl;
cout<<" ";

for(m=n;m>=0;m--)
{
switch(a[m])
{
case 0:
case 6:
case 8:cout<<"| |";break;
case 1:
case 3:
case 4:
case 5:
case 7:
case 9:cout<<" |";break;
case 2:cout<<"| ";break;
}
}
cout<<endl;
cout<<" ";

for(m=n;m>=0;m--)
{
switch(a[m])


{
case 0:
case 2:
case 3:
case 5:
case 6:
case 8:
case 9:cout<<" -- ";break;
case 1:
case 4:
case 7:cout<<" ";break;
}
}
cout<<endl;
cout<<"若您想继续计算请按“y”,退出请按“n”,并按下回车键执行命令 "<<endl;

cin>>g;
if(g=='n')
d=0;
else
d=1;
}
return 0;
}

[解决办法]
为什么变成669是下边的问题

C/C++ code
    for(i=0;i<=100;i++)     {         if(e==0)         {             break;//假设e已经等于0了,就可以跳出了         }         s=e%10;         a[i]=s;         e=e/10;       } 

读书人网 >C++

热点推荐