各位朋友 帮帮忙 小程序
问题可能是在循环中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是下边的问题
for(i=0;i<=100;i++) { if(e==0) { break;//假设e已经等于0了,就可以跳出了 } s=e%10; a[i]=s; e=e/10; }