首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-19 
各位朋友 帮帮忙 小程序问题可能是在循环中for(i0i100i++)中 ,若换成for(i0i20i++)等计算次数较

各位朋友 帮帮忙 小程序
问题可能是在循环中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;       } 

热点排行